插入排序偽**:
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...