精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析圖解算法之冒泡排序

Linux愛(ài)好者 ? 來(lái)源:小K算法 ? 作者:小K算法 ? 2021-06-08 16:43 ? 次閱讀

03 冒泡排序 為描述方便,用下面的數(shù)組模擬小朋友的交換過(guò)程。 核心思想(升序):

從首位置開始,依次比較前后兩個(gè)數(shù),如果前面的數(shù)比后面的數(shù)大,就交換兩個(gè)數(shù)。這樣第1輪結(jié)束后,最大的數(shù)就會(huì)移動(dòng)到最后的位置。對(duì)剩余元素重復(fù)執(zhí)行N-1次,整個(gè)數(shù)組有序。因?yàn)橄窨諝馍细〉剿妫畲蟮脑貢?huì)慢慢浮到最后,所以冒泡因此得名。

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

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

3.3 第3輪 第3輪對(duì)前面剩余的N-2個(gè)元素重復(fù)上面步驟,第3大的元素歸位。 總共執(zhí)行N-1次操作,所有元素歸位。

3.4 代碼實(shí)現(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 問(wèn)題及優(yōu)化

4.1 迭代輪次優(yōu)化 如果原數(shù)組為如下情況,那么在執(zhí)行完第1輪后,整個(gè)數(shù)組已經(jīng)有序,后面的輪次沒(méi)必要執(zhí)行,可以針對(duì)這種情況做一次優(yōu)化改進(jìn)。 改進(jìn)點(diǎn)1: 如果某一輪沒(méi)有發(fā)生過(guò)交換,說(shuō)明數(shù)組已經(jīng)有序,那么以后也不會(huì)發(fā)生交換,此時(shí)可以終止迭代。 代碼實(shí)現(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)化 如果為以下情況,我們會(huì)發(fā)現(xiàn)最后的6和8所處的位置和最終排序完成的位置一樣,說(shuō)明過(guò)程中他們的位置不會(huì)發(fā)生變化。 上一輪最后交換的位置,在下一輪時(shí),此位置后面的數(shù)也不會(huì)再發(fā)生交換。 改進(jìn)點(diǎn)2: 記錄每一次最后發(fā)生交換的位置,下一輪只需要掃描到此位置的前一個(gè)即可。 代碼實(shí)現(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é)

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6909

    瀏覽量

    88849
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4753

    瀏覽量

    68368

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

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    技術(shù)科普 | 芯片設(shè)計(jì)中的LEF文件淺析

    技術(shù)科普 | 芯片設(shè)計(jì)中的LEF文件淺析
    的頭像 發(fā)表于 11-13 01:03 ?153次閱讀
    技術(shù)科普 | 芯片設(shè)計(jì)中的LEF文件<b class='flag-5'>淺析</b>

    時(shí)間復(fù)雜度為 O(n^2) 的排序算法

    作者:京東保險(xiǎn) 王奕龍 對(duì)于小規(guī)模數(shù)據(jù),我們可以選用時(shí)間復(fù)雜度為 O(n2) 的排序算法。因?yàn)闀r(shí)間復(fù)雜度并不代表實(shí)際代碼的執(zhí)行時(shí)間,它省去了低階、系數(shù)和常數(shù),僅代表的增長(zhǎng)趨勢(shì),所以在小規(guī)模數(shù)據(jù)情況下
    的頭像 發(fā)表于 10-19 16:31 ?1044次閱讀
    時(shí)間復(fù)雜度為 O(n^2) 的<b class='flag-5'>排序</b><b class='flag-5'>算法</b>

    TPS54120排序和跟蹤

    電子發(fā)燒友網(wǎng)站提供《TPS54120排序和跟蹤.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 10:54 ?0次下載
    TPS54120<b class='flag-5'>排序</b>和跟蹤

    手把手教你排序算法怎么寫

    今天以直接插入排序算法,給大家分享一下排序算法的實(shí)現(xiàn)思路,主要包含以下部分內(nèi)容:插入排序介紹插入排序
    的頭像 發(fā)表于 06-04 08:03 ?649次閱讀
    手把手教你<b class='flag-5'>排序</b><b class='flag-5'>算法</b>怎么寫

    音箱制作過(guò)程圖解

    電子發(fā)燒友網(wǎng)站提供《音箱制作過(guò)程圖解.doc》資料免費(fèi)下載
    發(fā)表于 04-28 09:27 ?10次下載

    用FPGA實(shí)現(xiàn)雙調(diào)排序的方法(2)

    典型的排序算法包括冒泡排序、選擇排序、插入排序、歸并排序
    的頭像 發(fā)表于 03-21 10:28 ?608次閱讀
    用FPGA實(shí)現(xiàn)雙調(diào)<b class='flag-5'>排序</b>的方法(2)

    FPGA實(shí)現(xiàn)雙調(diào)排序算法的探索與實(shí)踐

    雙調(diào)排序(BitonicSort)是數(shù)據(jù)獨(dú)立(Data-independent)的排序算法,即比較順序與數(shù)據(jù)無(wú)關(guān),特別適合并行執(zhí)行。在了解雙調(diào)排序
    發(fā)表于 03-14 09:50 ?573次閱讀
    FPGA實(shí)現(xiàn)雙調(diào)<b class='flag-5'>排序</b><b class='flag-5'>算法</b>的探索與實(shí)踐

    想聽聽48和大對(duì)數(shù)光纜的排序

    48芯光纜和大對(duì)數(shù)光纜都是光纜中的一種,它們的區(qū)別在于芯數(shù)不同。48芯光纜指的是光纜中包含48根光纖,而大對(duì)數(shù)光纜則是指光纜中芯數(shù)超過(guò)了48芯。 在實(shí)際的光纜應(yīng)用中,不同芯數(shù)的光纜需要進(jìn)行不同的排序
    的頭像 發(fā)表于 03-12 10:44 ?560次閱讀

    C語(yǔ)言實(shí)現(xiàn)經(jīng)典排序算法概覽

    冒泡排序(英語(yǔ):Bubble Sort)是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序(如從大到小、首字
    的頭像 發(fā)表于 02-25 12:27 ?424次閱讀
    C語(yǔ)言實(shí)現(xiàn)經(jīng)典<b class='flag-5'>排序</b><b class='flag-5'>算法</b>概覽

    FPGA圖像處理CLAHE算法

    在FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來(lái)做圖像增強(qiáng)。
    的頭像 發(fā)表于 01-04 12:23 ?2417次閱讀
    FPGA圖像處理<b class='flag-5'>之</b>CLAHE<b class='flag-5'>算法</b>

    十大排序算法總結(jié)

    排序算法是最經(jīng)典的算法知識(shí)。因?yàn)槠鋵?shí)現(xiàn)代碼短,應(yīng)該廣,在面試中經(jīng)常會(huì)問(wèn)到排序算法及其相關(guān)的問(wèn)題。一般在面試中最常考的是快速
    的頭像 發(fā)表于 12-20 10:39 ?1088次閱讀

    斷路器控制回路接線圖解

    斷路器控制回路接線圖解
    的頭像 發(fā)表于 12-16 09:37 ?1940次閱讀
    斷路器控制回路接線<b class='flag-5'>圖解</b>

    保護(hù)器件過(guò)電應(yīng)力失效機(jī)理和失效現(xiàn)象淺析

    保護(hù)器件過(guò)電應(yīng)力失效機(jī)理和失效現(xiàn)象淺析
    的頭像 發(fā)表于 12-14 17:06 ?754次閱讀
    保護(hù)器件過(guò)電應(yīng)力失效機(jī)理和失效現(xiàn)象<b class='flag-5'>淺析</b>

    陶瓷電容溫度系數(shù)淺析:1類和2類電容有何差異?如何標(biāo)識(shí)?

    陶瓷電容溫度系數(shù)淺析:1類和2類電容有何差異?如何標(biāo)識(shí)?
    的頭像 發(fā)表于 12-08 17:30 ?1167次閱讀
    陶瓷電容溫度系數(shù)<b class='flag-5'>淺析</b>:1類和2類電容有何差異?如何標(biāo)識(shí)?

    時(shí)間復(fù)雜度為O (nlogn)的排序算法簡(jiǎn)述

    歸并排序遵循分治的思想:將原問(wèn)題分解為幾個(gè)規(guī)模較小但類似于原問(wèn)題的子問(wèn)題,遞歸地求解這些子問(wèn)題,然后合并這些子問(wèn)題的解來(lái)建立原問(wèn)題的解。
    的頭像 發(fā)表于 12-05 09:57 ?559次閱讀
    時(shí)間復(fù)雜度為O (nlogn)的<b class='flag-5'>排序</b><b class='flag-5'>算法</b>簡(jiǎn)述