1.演算法思想(alg's idea)
從左至右有序
第乙個位置只有乙個元素,當然有序
每次2 <= j <= n:將元素aj插入到有序的a[1.....j-1]中,並使a[1.....j]有序
直至j=n
2.alg偽**(類c,不可複製直接執行)
insertion sort(a) //將a[1....n]有序
for j=2 to n do
key<—a[j];
i=j-1;
while i>0 and a[i]>key do
//若a[1]>a[2]則交換,大家可以把j=2代入寫一遍就可以明白了
3.c語言實現插入排序
#include//從小到大排序
void insertion_sort(int a[10],int n)
} for(i=0;iprintf("%d\t",a[i]);
}void main()
insertion_sort(a,n);
}
演算法學習之插入排序
插入排序是一種最簡單的排序方法,對於少量元素的排序,它是乙個有效的演算法。其實現過程使用雙層迴圈,外層迴圈每次 插入乙個新的元素 內層迴圈將 新插入的數 與前面已排好序的部分進行比較,找到插空位置,形成新的有序數列。插入排序的平均時間複雜度是 o n 2 空間複雜度為常數階 o 1 具體時間複雜度和...
插入排序演算法學習
插入排序就如同手裡放了一堆紙牌,把紙牌從左到右進行排序。insert sort a for j 2 to n n為陣列a的長度 do key a j insert a j into the sorted sequence a 1.j 1 i j 1 while i 0 and a i key do ...
演算法學習 插入排序
插入排序 insertion sort 的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入 實現 public static void insertsort int array if array.length 0 r...