排序之插入類排序

2021-08-28 04:40:56 字數 735 閱讀 5858

1.直接插入排序

//思想:從無到有,陣列一直保持有序遞增,新來的元素p與數值r從末到首比較,若p小於陣列數值,則將陣列值後移,為p的插入預留空間

//r從r[1]開始儲存,最壞情況下時間r中元素遞增,時間複雜度為o(n^2),空間複雜度為o(1)

void insertsort(int r,int n)

else

return binarysearch(r,low,high,num);

}//r從r[1]開始儲存,最壞情況下時間r中元素遞增,時間複雜度為o(n^2)

void insertsort(int r,int n)

r[j+1]=temp;

}}

3.希爾排序(縮小增量排序)

//r從r[1]開始儲存,最壞情況下時間r中元素遞增,時間複雜度為o(n^2),空間複雜度為o(1)

//以下為對直接插入排序進行改造,引入起始下標,以及interval為最小位移,對應增量

void insertsort(int r,int n,int begin,int interval)

r[j+interval]=temp;}}

//希爾排序(縮小增量排序)diminishing increment, 這裡簡稱di, 如int di[3]=;

void shellsort(int r,int n,int di,int num)

}

插入類排序

插入類排序基本思想 在乙個已經排好序的記錄子集的基礎上,每一步將下乙個待排序的記錄有序插入已排好序的子集中,直到將所有待排序記錄插入為止。1.直接插入排序 演算法思想 將第i個記錄插入到前面i 1個已經排好序的記錄中。假設待排序記錄存放在r 1.length 之中,為了提高效率附設乙個監視哨r 0 ...

插入類排序

一 直接插入排序 straight insertion sort 1.時間複雜度 o n2 2.空間複雜度 o 1 3.實現 1 void insertsort int a,int num 10 a j 1 a 0 插入到正確位置11 12 13 二 折半插入排序 binary insertion ...

資料結構之排序 插入類排序

一.插入類排序 1.直接插入排序 待排數列初始狀態是正序,反序,無序時的時間複雜度為o n o n 2 o n 2 是穩定的排序演算法 2.二分插入排序 3.希爾排序 希爾排序優於直接插入排序。理由 1 當待排數列大致有序時,比較和移動的次數較少 比較後才移動,比較的少自然移動的少,移動的少比較的也...