演算法 插入排序 Insertsort

2021-09-26 06:20:42 字數 435 閱讀 6958

思路:將陣列分為兩個部分:前一部分為有序,後一部分為無序。將無序陣列元素向有序陣列中進行插入

設 j 為有序陣列的最後乙個元素;i為無序陣列的最後乙個元素。

穩定  時間複雜度   最好 o(n)  最壞 o(n^2)  平均 o(n^2) 

使用場景:陣列中的元素離最終位置不遠的情況,而且數量盡量在 5-20之間比較合適。

#includeusingnamespace std;

void insertsort(int*arr,int len)

arr[j+1] = temp;

}}int main()

; int len = sizeof(arr)/sizeof(arr[0]);

insertsort(arr,len);

return 0;

}

排序演算法(3) 直接插入排序InsertSort

介紹 插入排序的工作原理是,對於每個未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。越有序越快 步驟 1.從第乙個元素開始,該元素可以認為已經被排序 2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 3.如果被掃瞄的元素 已排序 大於新元素,將該元素後移一位 4.重複步驟3,直到找...

插入排序演算法

插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第n個元素與前n 1個元素進行比較並將其插入合適位置。演算法 建立日期 2004 12 14 插...

演算法 插入排序

include include 插入排序 n 2為的效率。具體思想 將陣列分為兩部分,一部分是有序的,一部分為無序的 然後從無序中選取乙個數插入在有序的數中的恰當的位置,以此迭代,直到無序的數全部遍厲完畢 void insert sort int a,int n a j tmp break retu...