由于LeetCode上的算法題很多涉及到一些基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),為了更好的理解后續(xù)更新的一些復(fù)雜題目的動(dòng)畫,推出一個(gè)新系列 -----《圖解數(shù)據(jù)結(jié)構(gòu)》,主要使用動(dòng)畫來(lái)描述常見的數(shù)據(jù)結(jié)構(gòu)和算法。本系列包括十大排序、堆、隊(duì)列、樹、并查集、圖等等大概幾十篇。
冒泡排序(Bubble Sort)也是一種簡(jiǎn)單直觀的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來(lái)。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來(lái)是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端。
算法步驟
比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是最大的數(shù)。針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。算法演示
排序動(dòng)畫過程解釋
將天平放在序列的右端,并比較天平左右的數(shù)字在這種情況下我們比較 3 和 8比較后如果右邊的數(shù)字較小,則被交換因?yàn)?8 大于 3 ,所以數(shù)字不用交換比較完成后,將天平向左移動(dòng)一個(gè)位置,比較數(shù)字因?yàn)?3 大于 2 ,所以數(shù)字不用交換比較完成后,逐一移動(dòng)天平,比較數(shù)字此時(shí) 2 小于 4 ,所以左右的數(shù)字互相交換重復(fù)同樣的操作,直到天平移動(dòng)到左端。。。。。。天平到達(dá)左端經(jīng)過上述的操作,數(shù)列中最小的數(shù)字已經(jīng)移動(dòng)到左端將天平返回右端重復(fù)相同的操作,直到所有數(shù)字都被排序。。。。。。吐完泡泡了參考代碼
C++
Java
Python
獲取文章高清動(dòng)畫圖片私信我即可。
本文發(fā)布于:2023-02-28 20:00:00,感謝您對(duì)本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/167764854873695.html
版權(quán)聲明:本站內(nèi)容均來(lái)自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:冒泡排序(冒泡排序的原理).doc
本文 PDF 下載地址:冒泡排序(冒泡排序的原理).pdf
| 留言與評(píng)論(共有 0 條評(píng)論) |