常見的三種排序演算法:氣泡排序,選擇排序,插入排序
- 氣泡排序(穩定):
重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。
//兩兩比較
intmain()
;for
(i=0
; i1; i++
)//決定裡面的迴圈迴圈幾輪}}
//列印結果
for(i=
0; i)printf
("%d "
,buf[i]);
printf
("\n");
}
int
main()
;int n =5;
int i,j,k;
int tmp;
for(i=
0;i1;i++)if
(i != k)}}
for(i=
0; i<
5; i++
)printf
("%d "
,a[i]);
printf
("\n");
}
以上三種演算法時間複雜度均為:o(n^2)。//[1] 3 7 8 5
//[1 3] 7 8 5
//.....
//[1 3 7 8] 5
//[1 3 5 7 8]
intmain()
;int tmp;
int n =5;
int j,i;
for(i=
1; i)else
} a[j+1]
= tmp;
}//列印結果
for( i=
0; i)printf
("%d "
,a[i]);
}
三種常見的排序演算法
剛開始的時候也聽過學長說什麼什麼排序之類的,到剛聽得時候是各種姿勢懵逼啊,學習了一段時間的c語言之後,才有點明白所謂的排序是什麼,現在就來羅列一下三種常用的排序法氣泡排序法,插入排序法和選擇排序法。氣泡排序啊,這是我聽過最多的乙個排序方法了,他的基本思想也比較簡單,就是不斷比較相鄰的兩個數,讓較小的...
三種排序演算法
1.氣泡排序法 2.選擇排序法 3.插入排序法 由小到大的順序 備註 網上筆試題,是參考網上別人的,具體出處找不到了,請諒解。摘抄記錄下來方便日後學習。如果有問題盡請批評指正,希望可以和大神一起交流。氣泡排序的最好的時間複雜度為o n 最壞的時間為 o n 2 演算法的平均時間複雜度為o n 2 選...
三種最常見的排序
非常恨那些把演算法排序之類的搞得異常麻煩的人,盡可能簡單一點,簡單了,容易理解了,才好記,上了戰場,才用得著.人家的不好用,只好自己總結,重寫原理與過程.口訣 冒泡 n 1,n i 1,比的是j與j 1 插入 n 1,i 1,比的是i 1與j 選擇 n,n,開始變成i 1,比的卻是i與j packa...