氣泡排序及演算法優化

2021-09-14 07:15:04 字數 1308 閱讀 3072

用雙重迴圈來控制,當相鄰元素不滿足要求的順序排列(從小到大或從大到小)時,就將兩元素交換位置,以此逐漸遍歷。

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次比較後,最...