久久午夜无码,国产中文资源,Chinese熟女熟妇2乱2,高清五码d一区

冒泡排序流程圖(小學(xué)生都能學(xué)會的冒泡排序)

冒泡排序流程圖(小學(xué)生都能學(xué)會的冒泡排序)

磨高原 2025-04-14 科技 13 次瀏覽 0個評論

01

故事起源

幼兒園放學(xué),小朋友們集合,需要先從低到高排隊,應(yīng)該怎么排呢?

小學(xué)生都能學(xué)會的冒泡排序

02

開始行動

小K身高180,是班里最高的,自然得往后排啦。小K先和身后的小B比較,然后和小B交換。

小學(xué)生都能學(xué)會的冒泡排序

小K接著和身后的小D比較,然后和小D交換。

小學(xué)生都能學(xué)會的冒泡排序

經(jīng)過和4個小朋友交換位置,小K終于找到自己的位置啦。

小學(xué)生都能學(xué)會的冒泡排序

上面的過程其實就是冒泡排序的核心思想了。

03

冒泡排序

為描述方便,用下面的數(shù)組模擬小朋友的交換過程。

小學(xué)生都能學(xué)會的冒泡排序

核心思想(升序):從首位置開始,依次比較前后兩個數(shù),如果前面的數(shù)比后面的數(shù)大,就交換兩個數(shù)。這樣第1輪結(jié)束后,最大的數(shù)就會移動到最后的位置。對剩余元素重復(fù)執(zhí)行N-1次,整個數(shù)組有序。因為像空氣上浮到水面,最大的元素會慢慢浮到最后,所以冒泡因此得名。

3.1

第1輪

執(zhí)行完成后,最大的元素歸位。

小學(xué)生都能學(xué)會的冒泡排序

3.2

第2輪

第2輪接著對前面剩余的N-1個元素重復(fù)上面步驟,第2大的元素歸位。

小學(xué)生都能學(xué)會的冒泡排序

3.3

第3輪

第3輪對前面剩余的N-2個元素重復(fù)上面步驟,第3大的元素歸位。

小學(xué)生都能學(xué)會的冒泡排序

總共執(zhí)行N-1次操作,所有元素歸位。

3.4

代碼實現(xiàn)

for (int i = 0; i < n - 1; ++i) {    for (int j = 0; j < n - i - 1; ++j) {        if (a[j] > a[j + 1]) {            swap(a[j], a[j + 1]);        }    }}

04

問題及優(yōu)化

4.1

迭代輪次優(yōu)化

如果原數(shù)組為如下情況,那么在執(zhí)行完第1輪后,整個數(shù)組已經(jīng)有序,后面的輪次沒必要執(zhí)行,可以針對這種情況做一次優(yōu)化改進(jìn)。改進(jìn)點1:如果某一輪沒有發(fā)生過交換,說明數(shù)組已經(jīng)有序,那么以后也不會發(fā)生交換,此時可以終止迭代。

小學(xué)生都能學(xué)會的冒泡排序

代碼實現(xiàn)

for (int i = 0; i < n - 1; ++i) {    // flag標(biāo)記是否有交換    bool flag = true;    for (int j = 0; j < n - i - 1; ++j) {        if (a[j] > a[j + 1]) {            swap(a[j], a[j + 1]);            flag = false;        }    }    if (flag) {        break;    }}

4.2

掃描范圍優(yōu)化

如果為以下情況,我們會發(fā)現(xiàn)最后的6和8所處的位置和最終排序完成的位置一樣,說明過程中他們的位置不會發(fā)生變化。

小學(xué)生都能學(xué)會的冒泡排序

上一輪最后交換的位置,在下一輪時,此位置后面的數(shù)也不會再發(fā)生交換。

小學(xué)生都能學(xué)會的冒泡排序

改進(jìn)點2:記錄每一次最后發(fā)生交換的位置,下一輪只需要掃描到此位置的前一個即可。

代碼實現(xiàn)

// 記錄最后交換的位置int position = 0;int len = n - 1;for (int i = 0; i < n - 1; ++i) {    // flag標(biāo)記是否有交換    bool flag = true;    for (int j = 0; j < len; ++j) {        if (a[j] > a[j + 1]) {            swap(a[j], a[j + 1]);            flag = false;            position = j;        }    }    len = position;    if (flag) {        break;    }}

05

總結(jié)

冒泡排序是比較簡單的一種排序算法,核心思想就是比較相鄰的兩個數(shù),但效率比較低所以可做一些優(yōu)化。時間復(fù)雜度為O(N^2),數(shù)據(jù)規(guī)模較小時可采用,但數(shù)據(jù)過大時就不建議采用冒泡了。

來源:小K算法

作者 :小K

原標(biāo)題:圖解算法:冒泡排序

編輯:hxg、yrLewis

轉(zhuǎn)載請注明來自夕逆IT,本文標(biāo)題:《冒泡排序流程圖(小學(xué)生都能學(xué)會的冒泡排序)》

每一天,每一秒,你所做的決定都會改變你的人生!

發(fā)表評論

快捷回復(fù):

評論列表 (暫無評論,13人圍觀)參與討論

還沒有評論,來說兩句吧...

亚洲一区二区三区高清| 一级毛片免费观看| aⅴ色国产欧美| 久久精品欧美日韩精品| 94国产在线观看精品无码| 动漫涩涩免费网站在线看| 久久精品无码一区二区乱片子| 国产va| 国模成人免费视频| 日韩色多多视频| 久久久人妻少妇| 国产又色又爽又黄的在线观看视频| 中国熟妇xxx| 美女免费网站91| 国产精品97久久久久久蜜臂| 黄片在线免费观看一区二区三区 | 日本高新在线亚洲视频看看| 精品99久久久蜜桃| 人妻少妇偷人精品无码免费| 中文字幕精品一区二区三区无码| 日本乱偷人妻中文字幕在线| 成人A∨大片| 精品国产丝袜自在线拍国语| 亚洲综合无码AV一区二区精品 | 懂色免费在线| 亚洲色图片国产传媒淫乱激情视频| 日韩综合中文资源| 欧美亚洲成人嗯啊| 99国产精品视频播放| 嫩草嫩草嫩草影院| www.久久5| 久久国产线观看免费网站| 业余自由性别成熟偷窥| 欧美中文字幕亚洲一区二区三区| 久久精品欧洲| 日本一本在线播放| 日韩黄色成人网| 成人无码av在线免费播放| 欧洲精品一区二区三区| 午夜影院在线免费观看| 日本精品夜色视频一区二区|