演算法學習之插入排序

2021-09-27 01:27:42 字數 555 閱讀 7193

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...