用雙重迴圈來控制,當相鄰元素不滿足要求的順序排列(從小到大或從大到小)時,就將兩元素交換位置,以此逐漸遍歷。
如果只遍歷兩三次,陣列本身就已經是有序的了,那麼對後面的元素繼續迴圈地進行大小判斷則是多餘的了。我們可以設定乙個標籤來標記當前次遍歷的陣列是否是有序的。void
bubblesort
(int
array)}}
long endtime = system.
currenttimemillis()
;//列印排序後的前10個數
for(
int i=
0;i<
10;i++
) system.out.
println
("陣列氣泡排序用時:"
+(endtime - starttime)
+"毫秒。");
}
void
bubblesortbyoptim
(int
array)}}
long endtime = system.
currenttimemillis()
;//列印排序後的前10個數
for(
int i=
0;i<
10;i++)
system.out.
println
("陣列氣泡排序優化後用時:"
+(endtime - starttime)
+"毫秒。");
}
int nums1=
newint
[100000];
int nums2=
newint
[100000];
public
static
void
main
(string[
] cmds)
arraysort as=
newarraysort()
; as.
initarrays()
; as.
bubblesort
(as.nums1)
; as.
bubblesortbyoptim
(as.nums2);}
public
void
initarrays()
nums2 = arrays.
copyof
(nums1, nums1.length)
;}
氣泡排序演算法及優化
氣泡排序是一種典型的交換排序演算法,通過交換資料元素的位置進行排序。從序列頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大 小 的資料元素交換到了佇列的隊尾,從而成為有序序列的一部分 下一次繼續這個過程,直到所有資料元素都排好序。演算法的核心在於每次通過兩兩比較交換位置,選出剩餘無序序列裡最...
氣泡排序演算法及優化
正常的兩兩交換實現 private static void sort1 int a time system.out.println 跑了 time 次 system.out.println arrays.tostring a 當陣列後面的排好過後就不在執行實現 private static void...
氣泡排序演算法詳解及優化
排序原理 比較兩個相鄰的元素,將值大的元素交換至右端,小的元素向上冒泡,這也是冒泡演算法名稱的由來。排序流程如下 1 對陣列中的各資料,依次比較相鄰的兩個元素大小,即第0和第1個比較,第1個和第2個比較.第n 2個和和第n 1個比較,每次比較中如 果前面的大於後面的就交換,這樣第一輪即n次比較後,最...