1.冒泡排序的思路
官方概念:通過(guò)對(duì)待排序序列從前向后厢岂,依次比較相鄰元素的值绳瘟,若發(fā)現(xiàn)逆序則交換易茬,使值較大的元素逐漸移到后部茧妒,就像氣泡一樣逐個(gè)上浮萧吠。
2.圖解(以五個(gè)元素排序?yàn)槔?/p>
image.png
通過(guò)觀察可以得出冒泡排序特點(diǎn)的:
(1)對(duì)于含有n個(gè)數(shù)據(jù)的序列需要進(jìn)行n趟排序。
(2)冒泡排序確定符合排序的要求是從后往前桐筏。
3.代碼實(shí)現(xiàn)
image.png
4.優(yōu)化
問(wèn)題場(chǎng)景:可能會(huì)存在一個(gè)序列無(wú)需進(jìn)行n-1趟排序便能完成排序纸型,如下圖所示:
image.png
觀察上述圖片不難發(fā)現(xiàn)經(jīng)過(guò)第一趟排序后就已經(jīng)為生序序列,若按上述算法依然會(huì)進(jìn)行3趟沒(méi)有意義的排序梅忌。
優(yōu)化思路:當(dāng)執(zhí)行完一趟排序后若未發(fā)生交換事件則可以提前結(jié)束排序狰腌。
實(shí)現(xiàn)方法如下:
image.png
新人第一次發(fā)文章,歡迎大佬指正牧氮!