色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析圖解算法之冒泡排序

Linux愛好者 ? 來源:小K算法 ? 作者:小K算法 ? 2021-06-08 16:43 ? 次閱讀

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

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

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

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

3.3 第3輪 第3輪對前面剩余的N-2個元素重復上面步驟,第3大的元素歸位。 總共執行N-1次操作,所有元素歸位。

3.4 代碼實現

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 問題及優化

4.1 迭代輪次優化 如果原數組為如下情況,那么在執行完第1輪后,整個數組已經有序,后面的輪次沒必要執行,可以針對這種情況做一次優化改進。 改進點1: 如果某一輪沒有發生過交換,說明數組已經有序,那么以后也不會發生交換,此時可以終止迭代。 代碼實現

for (int i = 0; i 《 n - 1; ++i) { // flag標記是否有交換 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 掃描范圍優化 如果為以下情況,我們會發現最后的6和8所處的位置和最終排序完成的位置一樣,說明過程中他們的位置不會發生變化。 上一輪最后交換的位置,在下一輪時,此位置后面的數也不會再發生交換。 改進點2: 記錄每一次最后發生交換的位置,下一輪只需要掃描到此位置的前一個即可。 代碼實現

// 記錄最后交換的位置 int position = 0; int len = n - 1; for (int i = 0; i 《 n - 1; ++i) { // flag標記是否有交換 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 總結

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

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7114

    瀏覽量

    89315
  • 代碼
    +關注

    關注

    30

    文章

    4813

    瀏覽量

    68844

原文標題:圖解算法:冒泡排序

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解Linux sort命令掌握排序技巧與實用案例

    在linux系統使用過程中,提供了sort排序命令,支持常用的排序功能。 常用參數 sort命令支持很多參數,常用參數如下: ? 短參數 長參數 說明 -n – number-sort 按字符串數值
    的頭像 發表于 01-09 10:10 ?167次閱讀

    TimSort:一個在標準函數庫中廣泛使用的排序算法

    在計算機科學的領域,排序算法是每位學生必學的基礎,而排序的需求是每位程序員在編程過程中都會遇到的。 在你輕松調用 .sort() 方法對數據進行排序時,是否曾好奇過,這個簡單的方法背后
    的頭像 發表于 01-03 11:42 ?101次閱讀

    技術科普 | 芯片設計中的LEF文件淺析

    技術科普 | 芯片設計中的LEF文件淺析
    的頭像 發表于 11-13 01:03 ?316次閱讀
    技術科普 | 芯片設計中的LEF文件<b class='flag-5'>淺析</b>

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

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

    TPS54120排序和跟蹤

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

    FPGA設計經驗圖像處理

    今天和大俠簡單聊一聊基于FPGA的圖像處理,之前也和各位大俠聊過相關的圖像處理,這里面也超鏈接了幾篇,具體如下: 圖像邊緣檢測算法體驗步驟(Photoshop,Matlab)算法
    發表于 06-12 16:26

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

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

    淺析FreeRTOS任務調度器的三種調度算法和應用

    FreeRTOS在MCU領域應用非常廣泛,今天就給大家講解一下FreeRTOS調度器中的三種調度算法,以及在瑞薩RZ/T2L MPU中的應用。
    的頭像 發表于 05-10 14:02 ?7707次閱讀
    <b class='flag-5'>淺析</b>FreeRTOS任務調度器的三種調度<b class='flag-5'>算法</b>和應用

    音箱制作過程圖解

    電子發燒友網站提供《音箱制作過程圖解.doc》資料免費下載
    發表于 04-28 09:27 ?11次下載

    支持 ACPI 的 10 軌電源排序器和監視器UCD9090A數據表

    電子發燒友網站提供《支持 ACPI 的 10 軌電源排序器和監視器UCD9090A數據表.pdf》資料免費下載
    發表于 03-29 09:12 ?0次下載
    支持 ACPI 的 10 軌電源<b class='flag-5'>排序</b>器和監視器UCD9090A數據表

    用FPGA實現雙調排序的方法(2)

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

    FPGA實現雙調排序算法的探索與實踐

    雙調排序(BitonicSort)是數據獨立(Data-independent)的排序算法,即比較順序與數據無關,特別適合并行執行。在了解雙調排序
    發表于 03-14 09:50 ?691次閱讀
    FPGA實現雙調<b class='flag-5'>排序</b><b class='flag-5'>算法</b>的探索與實踐

    想聽聽48和大對數光纜的排序

    48芯光纜和大對數光纜都是光纜中的一種,它們的區別在于芯數不同。48芯光纜指的是光纜中包含48根光纖,而大對數光纜則是指光纜中芯數超過了48芯。 在實際的光纜應用中,不同芯數的光纜需要進行不同的排序
    的頭像 發表于 03-12 10:44 ?671次閱讀

    C語言實現經典排序算法概覽

    冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序(如從大到小、首字
    的頭像 發表于 02-25 12:27 ?471次閱讀
    C語言實現經典<b class='flag-5'>排序</b><b class='flag-5'>算法</b>概覽

    TCP協議技術擁塞控制算法

    擁塞控制是在網絡層和傳輸層進行的功能。在網絡層,擁塞控制可以通過路由算法來控制數據包在網絡中的傳輸,以降低網絡擁塞的發生。
    的頭像 發表于 02-03 17:06 ?2334次閱讀
    TCP協議技術<b class='flag-5'>之</b>擁塞控制<b class='flag-5'>算法</b>
    主站蜘蛛池模板: 国产电影无码午夜在线播放| 麻花豆传媒剧国产免费mv观看| 久久热在线视频精品1| 色列少女漫画| 丰满的寡妇hd高清在线观看| 国产热久久精| 羞羞在线观看| 92午夜理论第1000集 app| 国产传媒18精品免费1区| 色欲AV亚洲永久无码精品麻豆| 成人小视频免费在线观看| 日本黄色官网| 伊人久久精品AV一区二区| 精品国产99久久久久久麻豆| 亚洲一区精品伊人久久伊人| 国产亚洲精品字幕在线观看| 亚洲人女同志video| 久久久久综合一本久道| 91黄色大片| 日韩av无码在线直播 | 亚洲欧美日本久久综合网站| 精品人妻伦九区久久AAA片69 | 午夜一级免费视频| 国产亚洲精品久久久久苍井松| 亚洲色图在线播放| 美女被爆羞羞天美传媒| 成人无码国产AV免费看直播| 香蕉久久日日躁夜夜嗓| 久久99re热在线观看视频| 97免费视频观看| 十分钟免费观看高清视频大全| 国产人妻久久久精品麻豆| 一品道门在线视频| 青青草国产精品| 韩国演艺圈悲惨在线| 最近免费中文字幕完整版HD| 欧美同志高清vivoeso| 国产乱人视频在线观看| 同桌别揉我奶了嗯啊| 精品久久日日躁夜夜躁AV| 91精品欧美一区二区三区|