演算法步驟:
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
我的理解:
氣泡排序在整個演算法中比較重要的一點是在整個演算法中,依次放棄冒出水面的值。
優點:
穩定缺點:
慢,每次只移動相鄰的兩個元素
以下是乙個氣泡排序的例子:
package com;
public class test
}number--;
jj++;
if(str.length == jj)
}}
public static void main(string args) ;
//冒泡演算法
maopaoyh2(str);
for (int i = 0; i < str.length; i++)
str = null;
}}
優化:
外層迴圈優化。
優化原理:
如果用乙個flag來判斷一下,當前陣列是否已經有序,如果有序就退出迴圈,這樣可以明顯的提高氣泡排序的效能。
以下是優化後的氣泡排序:
package com;
public class test
}if(flag)
}}
public static void main(string args) ;
//冒泡演算法優化1
maopaoyh1(str);
for (int i = 0; i < str.length; i++)
str = null;
}}
3分鐘學會氣泡排序
思路 兩個元素比較,大的放到右邊 從頭開始依次比較相鄰的兩個元素,目的是找出最大的乙個元素放到末尾,這個元素不再參與比較 第二次仍然從頭開始,把第二大的元素放到正確的位置 一共比較 len 1 趟,因為已經確定了 len 1 個元素的位置,那麼第 n 個肯定是最小的那個了 第 i 趟的比較次數為 l...
初識正則30分鐘
注意,不是 值元素符號是正則裡面最基本單元,匹配時都是匹配一次。形式字元範圍 編號在 0 255 範圍的字元,也就是ascii碼 比如 空格可以使用 x20 表示 u x 任何字元可以使用 u 再加上其編號的4位十六進製制數表示,也就是unicode碼 比如 u4e2d 通常,m和n都是自然數,且一...
10分鐘帶你看懂氣泡排序Yu選擇排序
你可以這樣理解 從小到大排序 存在10個不同大小的氣泡,由底至上地把較少的氣泡逐步地向上公升,這樣經過遍歷一次後,最小的氣泡就會被上公升到頂 下標為0 然後再從底至上地這樣公升,迴圈直至十個氣泡大小有序。在氣泡排序中,最重要的思想是兩兩比較,將兩者較少的公升上去 問題 設有一陣列,其大小為10個元素...