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 當待排數列大致有序時,比較和移動的次數較少 比較後才移動,比較的少自然移動的少,移動的少比較的也...