理解:
直接插入排序法,假設陣列arr[n],先選取arr[1],將arr[1]儲存為temp,再將arr[1]與arr[0]比較,如果arr[1]小於它前面的arr[0],則將arr[0]的值右移至arr[1]的位置,即把arr[i]與arr[i-1]作比較,如果arr[i]小於arr[i-1],則將arr[i-1]及其之前的值右移,直到arr[i]大於或等於arr[i-1]為止,這時再將arr[i]插入這個位置,如下圖所示,橙色代表選取出來要進行插入的資料,綠色代表已經插好的資料:
實現**如下:
static
void main(string args)
;console.writeline("before sort:");
show(arr);
console.writeline("after sort:");
insertionsort(arr);
show(arr);
}static
void show(int arr)
static
void insertionsort(int arr)
arr[origin] = temp;}}
c 實現直接插入排序
include includeusing namespace std define list init size 100 define listincrement 10 define elemtype int typedef structsqlist 建順序表 void initlist sq sq...
C 實現直接插入排序
直接插入排序在生活中最好的體現就是玩撲克牌,我們理牌的方式是把3和4移動到5的左側,再拿到一張2,把2移到最左側,拿到一張10,放最後邊,再拿到一張7,插入5與10中間。這裡我們的理牌方法就是直接插入排序。話不多說,直接上 這裡一步步給出不同的寫法 include include using nam...
直接插入排序 C 實現
原理 插入排序的基本操作是 有序插入 也就是將元素逐一插到有序序列中,保持序列有序,從而使有序序列的長度不斷增加。對陣列a n 排序時,起初a 0 被認為是長度為1的有序子串行。然後,按照有序插入法,i從1到n 1迴圈地將a i 插入到有序序列中。在插入a i 前,陣列a的前半段 a 0 至a i ...