八大排序算法總結 1-直接插入排序


1.直接插入排序

原理:將數組分為無序區和有序區兩個區,然后不斷將無序區的第一個元素按大小順序插入到有序區中去,

最終將所有無序區元素都移動到有序區完成排序。

要點:設立哨兵,作為臨時存儲和判斷數組邊界之用。

實現:

用C#源代碼進行了實現

Void InsertSort(Node L[],int length)

{

Int i,j;//分別為有序區和無序區指針

for(i=1;i<length;i++)//逐步擴大有序區

{

j=i+1;

if(L[j]<L[i])

{

L[0]=L[j];//存儲待排序元素

While(L[0]<L[i])//查找在有序區中的插入位置,同時移動元素

{

L[i+1]=L[i];//移動

i--;//查找

}

L[i+1]=L[0];//將元素插入

}

i=j-1;//還原有序區指針

}

}

   

   這個算法的復雜度是 O(n^2) 他的算法的復雜度與BubbleSort 的算法的復雜度一致,但是其理解就是在數組中進行了插入要進行排序的數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM