每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。
第一趟比較前兩個數,然後把第二個數按大小插入到有序表中;
第二趟把第三個資料與前兩個數從前向後掃瞄,把第三個數按大小插入到有序表中;
依次進行n-1趟掃瞄後就完成了整個排序過程
1 #include 2 #include 34intn;5
6/*7* 直接插入排序8*/
9void insertsort(int *array)
1022 array[j + 1] = array[0
];23}24
}25}26
27int
main()
2839
insertsort(array);
40 printf("
排序後為:");
41for (i = 1; i <= n; i++)
4245 printf("\n"
);46 }
資料結構 插入排序 直接插入排序
有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法 插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o n 2 是...
資料結構 排序 直接插入排序
直接插入排序 在排序過程中,向有序子表逐個的插入元素操作進行了n 1趟,每趟操作都分為比較關鍵字和移動元素,而比較次數和移動次數取決於帶排序表的初始狀態。在最好情況下,時間複雜度o n 最壞情況下o n n 穩定性 每次插入元素都是從後向前先比較在移動,穩定演算法 適用性 直接插入排序演算法適用於順...
資料結構 直接插入排序
直接插入排序 include include typedef struct int elem int length sqlist void initsqlist sqlist l int i printf 請輸入元素個數 scanf d l length l elem int malloc size...