從深水區開始冒泡

2021-09-17 21:04:36 字數 1936 閱讀 7182

氣泡排序也稱為交換排序演算法,從一組無序的佇列,通過相鄰的兩個元素進行兩兩比較,根據大小交換位置,篩選最大或者最小的元素到有序佇列的尾部,周而復始,直到整個佇列的元素從無序變成有序。 

1. 以公升序為例子,篩選最大的元素到佇列尾部,預設隊列為 [ 4,3,5,2 ]

2. 以4作為最大元素開始,跟3作比較,4比3大,4與3交換,交換後的隊列為[ 3,4,5,2 ]

3. 4繼續跟5作比較,4比5小,不交換位置,最大元素變為5

4. 以5作為最大元素,繼續跟2做比較,5比2大,交換位置,5作為最大值已到達佇列尾部,成為有序佇列的一部分,隊列為 [ 3,4,2,5 ]

5. 3開始作為最大元素,跟相鄰4作比較,3比4小,不交換位置,最大元素變為4

6.  以4作為最大元素,繼續跟相鄰元素2作比較,4比2大,交換位置,交換後隊列為[ 3,2,4,5 ]

7. 4繼續跟相鄰元素5作比較,由於5是有序佇列的一部分,因此4成為了有序佇列的一部分,隊列為[ 3,2,4,5 ]

8. 3開始作為最大元素,跟相鄰的2作比較,3比2大,交換位置,交換後隊列為[ 2,3,4,5 ]

9. 3繼續跟相鄰元素4作比較,由於4是有序佇列的一部分,因此3成為了有序佇列的一部分,隊列為[ 2,3,4,5 ]

10. 2開始作為最大元素,跟相鄰3作比較,由於3是有序佇列的一部分,因此2成為有序佇列的一部分,隊列為[ 2,3,4,5 ]

11. 最終整個無序的佇列變成了有序的佇列 [ 2,3,4,5 ]

1. 基礎氣泡排序

public static void bubblesort()

;//元素佇列

for (int i = 0; i < arrays.length; i++) //外層迴圈把佇列的每一元素參與運算}}

}

2. 優化氣泡排序,新增標誌向量

public static void optimizebubblesortinlabel()

;bool change = false; //新增標誌變數

for (int i = 0; i < arrays.length; i++)

}if (!change) break;//沒有發生交換就中斷,佇列已經有序}}

3. 優化氣泡排序,減少交換次數

/// /// 優化氣泡排序執行次數,忽略有序佇列,對無序佇列進行排序,內層迴圈減去已經排序好的數量。

///

///

public static void optimizebubblesortincount()

;//元素佇列

bool change = false;

for (int i = 0; i < arrays.length; i++)

}if (!change) break;}}

1. 氣泡排序時間複雜度

2.氣泡排序的空間複雜度

3.氣泡排序的穩定性

醫療軟體深水區

昨天和一位朋友吃飯。因為我們都是出身於醫療資訊化,而且多年來一直關注著這個行業的發展,所以聊了許多。大家都有共識,那就是 醫院需要上那麼it公司就給定製開發什麼,這只會淪為醫院的開發編碼工。如何從眾多醫院軟體公司中脫穎而出,需要走出一條更深的路。需要判斷國家的醫療改革目標 內容 投資力度 投資 監督...

華為著力HMS安全能力構建,進入生態深水區

根據歷史記載以每百年為週期,大國之間會有乙個權力調整,就像人有代謝一樣。去年5月谷歌停止對華為手機推送gms服務,今年5月公升級為晶元制裁。今年8月,在中國資訊化百人會2020峰會上,華為消費者業務ceo余承東在演講時表示今秋上市的mate 40將搭載麒麟9000,但由於美國此前頒布的禁令,麒麟90...

網貸專項整治進入深水區 和信貸積極擁抱監管

為總結網際網路金融和網路借貸專項整治工作進展,加強各地風險處置經驗交流,部署 2019 年專項整治工作,網際網路金融風險專項整治領導小組辦公室 p2p網路借貸風險專項整治領導小組辦公室 1 月 10 日在浙江省杭州市召開全國網際網路金融和網路www.cppcns.com借貸風險專項整治工作會議。會議...