直接插入排序在排序中較為簡單:

在上面陣列中,長度為5,而直接插入排序的思想就是:
- 在第一遍的時候,第i-1個到前面的都為有序的陣列(所以i的位置應該從下標1開始)
- 而此時的第i個元素就是要排序,由于前i-1個元素是有序的,所以只需要找比i的元素大的或者小的下標
- 就像上圖中的當i=1時此時要找到比arr[i]小的數,如果是比它大的話,那么將這個這個與他比較的陣列向后移動,再次與前一個陣列比較
- 但是向前移動的這個動作不能一直下去,停下來的條件是i不能小于等于0

代碼如下:
DirectInsertSort(int arr[],int len){
int i,j;
for(i=1;i<len;i++){
j=i-1;
int temp = arr[i];
while(j>=0 && temp < arr[j]){
arr[j+1] = arr[j];
j--;
}
arr[j+1] = temp;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/207593.html
標籤:其他
上一篇:作業系統之bios
下一篇:OI長詩 by ducati
