排序 2 直接插入排序

2021-07-23 11:27:27 字數 689 閱讀 3998

1. 直接插入排序思想

構建有序序列,對於未排序的資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。 插入排序的實現上,從後向前掃瞄,需要反覆把已排序元素逐步向後移動,為最新元素提供插入空間

// 2. 插入排序

//`預設乙個元素是有序的

// 三個 元素拿出來;符合條件後移;插入

void insertsort(int *a,int num)

a[j+1]=temp;//將符合條件的元素插入

}}int main()

; srand(time(null));

for (int i=0;i<9;i++)

cout

<<"排序之前的陣列\n";

print(array,9);

//selectsort(array,9);

insertsort(array,9);

cout

<<"排序之後的陣列\n";

print(array,9);

system("pause");

return

0;}

2.時間複雜度計算

最好的情況,只有比較沒有移動,時間複雜度為o(n)。

最壞的情況:比較時間複雜度+移動時間複雜度為o(n2)。

直接插入排序2

在日常生活中,經常碰到這樣一類排序問題 把新的資料插入到已經排好的資料列中。例如 一組從小到大排好順序的資料列,通常稱之為有序列,我們用序號1,2,3,表示資料的位置,欲把乙個新的資料8插入到上述序列中。完成這個工作的步驟 確定資料 8 在原有序列中應該占有的位置序號。資料 8 所處的位置應滿足小於...

插入排序 直接插入排序

直接插入排序演算法思想 將整個資料表分成左右兩個子表,其中左子表為有序表,右子表為無序表 整個排序過程就是將右子表中的元素逐個插入到左子表中,直到右子表為空,而左子表成為新的有序表。演算法過程分析 將待排序的元素存放在陣列r n 1 中,在初始狀態下,r 0 為監視哨,r 1 為有序區,r 2 r ...

插入排序 直接插入排序

一.插入排序的基本思想 將乙個記錄插入已排序好的有序表中,從而得到乙個新的記錄數加1的有序表。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。所謂的哨兵,就是即將插入的記錄。二.示例 如果碰見相等的元素,會被插到後面,所以,相等元素的前後順序沒有改變,插入排序是穩定的。三.演算法實現 public ...