插入 氣泡排序

2021-06-05 23:36:14 字數 994 閱讀 5941

插入排序偽**:

insertion-sort(a)

for j ←2 to length[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

doa[i+1] ← a[i]

i ← i-1

a[i+1] ← key

c語言**:

/*

n --- 陣列長度

公升序排列

*/void insert_sort(sort_t *sort, int n)

sort[i+1] = key;

}}int main(void)

; insert_sort(a, 10);

for(int i = 0; i < 10; i++)

printf("%d,", a[i]);

printf("\n");

return 0;

}

氣泡排序偽**:

bubblesort(a)

for(i←1 to length[a])

do for j←length[a] downto i+1

do if a[j] < a[j-1]

then exchange a[j]↔a[j-1]

c語言**:

typedef int sort_t;

#define swap(x, y) temp = y, y = x, x = temp

/* 氣泡排序

逐個交換,每輪之後最小值被「冒」到最前面

*/void bubblesort(sort_t *a, int length)

}}}

排序(冒泡 插入)

1 最好情況 最壞情況 平均情況時間複雜度 2 時間複雜度的係數 常數 低階 3 比較次數和交換 或移動 次數 例子 比如我們有一組資料 2,9,3,4,8,3,按照大小排序之後就是 2,3,3,4,8,9 這組資料裡有兩個 3。經過某種排序演算法排序之後,如果兩個 3 的前後順序沒有改變,那我們就...

氣泡排序,插入排序

前提 void x sort elementtype a,int n 大多數情況下,為簡單起見,討論從小大的整數排序 n是正整數 只討論基於比較的排序 有定義 只討論內部排序 穩定性 任意兩個相等的資料,排序前後的相對位置不發生改變 沒有一種排序是任何情況下 都表現最好的 氣泡排序 void bub...

氣泡排序 插入排序

學習思路 思路講解 實現 1 通過雙重迴圈,相鄰兩個資料做對比,通過位置交換使其變得有序 2 時間複雜度 分析 解釋 外部迴圈從0開始i 內部迴圈從0開始j,完整迴圈後會將本次最大值放入陣列最後,下次迴圈可忽略相應的尾部資料 length i 1 重複1 2步即可完成排序 實現 public cla...