C語(yǔ)言排序方法——冒泡排序詳解!你學(xué)會(huì)了嗎?
冒泡排序法的基本思路為:每次將相鄰的兩個(gè)數(shù)比較,將小的調(diào)在前面。舉個(gè)例子,如果有6個(gè)數(shù):9,8,5,4,2,0。第一次先將最前面的兩個(gè)數(shù)9和8對(duì)調(diào)。第二次將第2個(gè)數(shù)和第3個(gè)數(shù)對(duì)調(diào)(9和5)······如此共進(jìn)行5次得到8,5,4,2,0,9的順序,可以看到:最大的數(shù)9已經(jīng)沉到了最底下成為了最下面的一個(gè)數(shù),而小的數(shù)“上升”。

然后進(jìn)行第二輪比較,對(duì)余下的5個(gè)數(shù)進(jìn)行冒泡排序,然后這五個(gè)數(shù)中最大的數(shù)8沉到了最底下。如此6個(gè)數(shù)進(jìn)行5趟排序,才能使6個(gè)數(shù)按大小順序排列。第一趟中要進(jìn)行兩個(gè)數(shù)之間的比較共5次,第二趟中要比較4次······第五趟中比較一次。即如果有n個(gè)數(shù),則要進(jìn)行n-1趟比較,第一次比較中需要進(jìn)行n-1次兩兩比較,第二趟需要進(jìn)行n-2次,第j次需要進(jìn)行n-j次兩兩比較。
N個(gè)數(shù)字要排序完成,總共進(jìn)行N-1趟排序,每i趟的排序次數(shù)為(N-i)次,所以可以用雙重循環(huán)語(yǔ)句,外層控制循環(huán)多少趟,內(nèi)層控制每一趟的循環(huán)次數(shù).

Tip:
經(jīng)實(shí)測(cè)輸入?#define _CRT_SECURE_NO_WARNINGS 1?后scanf不用再改為scanf_s
#define _CRT_SECURE_NO_WARNINGS 1?// 預(yù)編時(shí)處理一下,加個(gè)宏而已,讓其忽略安全檢測(cè)
int temp, i, j;?// i是數(shù)組下標(biāo),j是比較次數(shù)

運(yùn)算結(jié)果如下:

最后再送上一張冒泡排序的動(dòng)態(tài)示意圖吧!

另外,對(duì)現(xiàn)在我們的大多數(shù)朋友來(lái)說(shuō)還是學(xué)編程技術(shù)最重要!栽一棵樹(shù)最好的時(shí)間是十年前,其次是現(xiàn)在。對(duì)于準(zhǔn)備學(xué)習(xí)編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開(kāi)始!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
