簡(jiǎn)單地說(shuō),氣泡排序是一個(gè)過(guò)程,在這個(gè)過(guò)程中,我們將反復(fù)迭代一個(gè)數(shù)組,并將當(dāng)前值與下一個(gè)值進(jìn)行比較,如果它更大,我們將交換它。
因此,這是該過(guò)程的分步說(shuō)明:
我將從此數(shù)組開(kāi)始并按升序排序:
讓我們比較前兩個(gè)索引:
沒(méi)什么可改變的。繼續(xù)...
我們現(xiàn)在可以將7與1交換,并將我們的比較滑動(dòng)窗口向下移動(dòng)...
再一次,7可以向下移動(dòng):
現(xiàn)在讓我們從頂部重新開(kāi)始該過(guò)程...
大功告成!
編碼
您會(huì)注意到,我的外循環(huán)正在遞減,其原因是我可以基于完整數(shù)組的不斷縮小的范圍來(lái)進(jìn)行內(nèi)循環(huán)迭代。
換句話(huà)說(shuō),每次運(yùn)行外部循環(huán)時(shí),我知道數(shù)組末尾的一個(gè)值不需要排序。
另外,如果我想檢查排序數(shù)組并提前中斷迭代,我可以實(shí)現(xiàn)類(lèi)似這樣的東西...