最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

冒泡排序(Bubble Sort)

2022-08-30 21:14 作者:游俠翻滾  | 我要投稿

基本概念??

冒泡排序是一種簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,依次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數(shù)列的工作是重復(fù)地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端。

冒泡排序的思想就是每一輪把所有元素下標為01,12,23,34.....如此一直比較到n-1和n。若當前的比前一個?。ㄟ@里我們默認為從小到大的排序),那么進行調(diào)換。每一輪下來一定有一個最大的元素“冒”到最后(頂端),也就是說在最壞的情況下,最多要進行n-1次。

例如有6個元素需要排序:

653412

第一趟排序:

比較65??? ? ? 得563412? ??

比較63?? ? ? ?得536412? ? ?

比較64? ? ? ? 得534612? ??

比較61? ? ? ? 得534162? ? ?

比較62? ? ? ? 得534126? ? ?

第一趟結(jié)束,最后的6固定下來

第二趟排序:

比較53? ? ? ? 得354126

比較54? ? ? ? 得345126

比較51? ? ? ? 得341526

比較52? ? ? ? 得341256

6已經(jīng)固定所以56不比較

第二趟結(jié)束,5固定下來

第三趟排序:

比較34? ? ? ??得341256

比較41? ? ? ? 得314256

比較42? ? ? ? 得312456

5已經(jīng)固定所以45不比較

第三趟結(jié)束,4固定下來。

第四趟排序:

比較31? ? ? ? 得132456

比較32? ? ? ? 得123456

4已經(jīng)固定所以34不比較

第四趟結(jié)束,3固定下來

第五趟排序:

比較12? ? ? ? 得123456

3已經(jīng)固定所以23不比較

第五趟結(jié)束,2固定下來

1也隨之固定下來

五趟結(jié)束后,6個整數(shù)就已經(jīng)排序完成。排序過程中,大數(shù)慢慢地往后,相當于氣泡上升,所以叫冒泡排序。

歸納上述排序過程,具體實現(xiàn)步驟如下:

①讀人數(shù)據(jù)存放在a數(shù)組中。

②比較相鄰的前后兩個數(shù)據(jù),如果前面數(shù)據(jù)大于后面的數(shù)據(jù),就將兩個數(shù)據(jù)交換。

③對數(shù)組的第0個數(shù)據(jù)到n-1個數(shù)據(jù)進行一次遍歷后,最大的一個數(shù)據(jù)就“冒”到數(shù)組第n一1個位置。

④n=n一1,如果n不為0就重復(fù)前面二步,否則排序完成。

我們用動畫看一下其過程:

冒泡排序

程序?qū)崿F(xiàn)

程序?qū)崿F(xiàn)方法:用兩層循環(huán)完成算法,外層循環(huán)i控制每輪要進行多少次的比較,第1輪比較n一1次,第2輪比較n-2....最后一輪比較1次。內(nèi)層循環(huán)j控制每輪i次比較相鄰兩個元素是否逆序,若逆序就交換這兩個元素。

具體程序如下:

在用冒泡排序的時候,我們發(fā)現(xiàn),對于一些數(shù)據(jù),并不一定要n-1次才可以排完。例如1 5 2 3 4 5,我們發(fā)現(xiàn)這種情況只需要一趟排序就可以將整個序列排完,若繼續(xù)下去就大大增加了程序運行的時間而且浪費空間。于是,我們可以設(shè)置一個布爾類型的變量,判斷是否有進行交換,如果沒有,說明已經(jīng)完成了排序,從而減少幾趟排序。

那我們?nèi)绾卫眠@個布爾變量呢。

舉個栗子??

1 5 2 3 4 6 7

再此,我們要先確定好這個變量是用來干嘛的,這個變量是用來看還要不要執(zhí)行。執(zhí)行條件就是假,也就是還沒有執(zhí)行完呢,終止條件就是真,也就是執(zhí)行完了呢。就以上面的例子而言,循環(huán)每次開始我們的布爾變量是true,所以該程序可以執(zhí)行,第一趟我們對數(shù)列進行了調(diào)整,變量要變成假,代表還要繼續(xù),此時,數(shù)列已經(jīng)有序化,下一次執(zhí)行的時候并沒有對數(shù)列進行調(diào)整,所以并沒有將變量改為假,所以跳出循環(huán),直接輸出有序數(shù)列就行了。

具體程序如下:

部分格式和代碼借鑒了《信息學(xué)奧賽一本通(C++)》

up打字不容易,思路整理更不容易,點一個免費的贊??鼓勵一下up吧!up是用手機打的字,眼睛??都要瞎了,點個贊吧不浪費你們的時間,改天up給你們表演一個猴子上樹!??


冒泡排序(Bubble Sort)的評論 (共 條)

分享到微博請遵守國家法律
孟津县| 原阳县| 始兴县| 玉山县| 洛扎县| 叙永县| 连城县| 嘉祥县| 赤壁市| 周口市| 称多县| 五指山市| 封丘县| 田阳县| 沈丘县| 亳州市| 鹿邑县| 玛纳斯县| 永清县| 海原县| 张掖市| 长治市| 融水| 龙胜| 清流县| 烟台市| 德格县| 红河县| 抚宁县| 五寨县| 迭部县| 湟中县| 台湾省| 剑阁县| 格尔木市| 平谷区| 工布江达县| 济南市| 阜平县| 普宁市| 外汇|