之前在網易中寫過一篇氣泡排序的章:
下面做乙個簡單的總結:
【氣泡排序基本思想】
對待排序的陣列從後往前進行多次掃瞄,掃瞄過程中發現相鄰的兩個數不符合排序規則時,就交換位置。
【排序次數】
分為外層迴圈i和內層迴圈j,舉例說明,有n個數,進行排序時,要進行i=n-1次外層迴圈,每次外迴圈都要進行j=n-i次內迴圈
【補不足】
以前那樣寫就表明一定要排n-1次,但是發現如果某次排序後,但還沒到最後一次,該陣列已經有序,就不需要再次對已有序陣列排序了,可直接結束排序,下面是我用c#寫的補充之前在此方面的不足的氣泡排序的**。**思路是一樣的,但是會宣告乙個標誌變數,標識否停止迴圈的變數。即通過記憶體空間使用上的增多來使程式的執行效率提公升,該方法成為「以空間換取時間」。
【總結】//清空之前排好的數
labnew.text = "";
for (int i = 0; i < arrnum.length - 1;i++ )//外層迴圈
}if (flag == false)
messagebox.show(i.tostring());
}finsh:
//把排好的數顯示出來
for (int i = 0; i < arrnum.length;i++ )
labnew.text = labnew.text.substring(0, labnew.text.lastindexof('、'));
方法總在優化,有優化就有動力。冒泡還有待研究。。。
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...
氣泡排序 氣泡排序法
冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...
選擇排序,氣泡排序,雙向氣泡排序
氣泡排序和選擇排序是最基本的排序方式,要掌握。氣泡排序重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。選擇排序每一趟從待排序的 資料元素 中選出最小 或最大 的乙個元素,順序放在已排好序的數列的...