Java 實現氣泡排序及優化

2021-09-13 12:53:53 字數 2535 閱讀 1992

氣泡排序就是按索引逐次比較相鄰的兩個元素,滿足比較條件,則置換,否則不做改變。

其優化手段可以從減少記憶體迴圈和外層迴圈著手。

//最差的冒泡

public

void

sort1

(int

ary)}}

system.out.

println

("total time:"+(

(system.

nanotime()

- starttime)

/1.0e9))

;}

//內層迴圈次數,遞減一次; 因為每次內層迴圈都將較大的值向後交換了

public

void

sort2

(int

ary)}}

system.out.

println

("total time:"+(

(system.

nanotime()

- starttime)

/1.0e9))

;}

//設 bool-flag, 內層迴圈有交換設 true, 外層迴圈條件 while(flag),同樣內層迴圈次數遞減

//當第 n 次內層迴圈有序,就退出外層迴圈

public

void

sort3

(int

ary)

} len--;}

system.out.

println

("total time:"+(

(system.

nanotime()

- starttime)

/1.0e9))

;}

//設 int-flag 與 len, flag=內層迴圈最後的交換位置,len=flag即下次內層迴圈次數小於len

//因為每次內層迴圈都將較大的值向後交換了。當第 n 次內層迴圈有序,就退出外層迴圈

public

void

sort4

(int

ary)

} len = flag;

} system.out.

println

("total time:"+(

(system.

nanotime()

- starttime)

/1.0e9))

;}

//雞尾酒排序、雙向的氣泡排序

public

void

sort5

(int

ary)

} l = tl;

//從左向右比,找到右邊界

for(

int i = l; i < r; i++)}

r = tr;

//兩個內層迴圈,誰前誰後都可以;下面是先找右邊界,再找左邊界

/* for (int i = l; i < r; i++)

}r = tr;

for (int i = r; i > l; i--)

}l = tl;*/}

system.out.

println

("total time:"+(

(system.

nanotime()

- starttime)

/1.0e9))

;}

public

void

sort6

(int

ary)

else

// }

//前 j 個元素間,滿足條件,才交換

for(

int j = i; j >

0&& ary[j]

< ary[j -1]

; j--)}

system.out.

println

("total time:"+(

(system.

nanotime()

- starttime)

/1.0e9))

;}

total time:1.881900637

total time:0.836298415

total time:0.899675507

total time:0.933527785

total time:0.836643484

total time:0.854876703

total time:1.124683979

total time:0.843978482

total time:0.867328103

total time:0.802187341

total time:0.515037643

total time:0.243494017

排序演算法 氣泡排序及優化 Java實現

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。1.1 演算法描述 1.2 演示 基本的氣...

氣泡排序 python實現及優化

氣泡排序原理 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個 否則,位置不變。2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除了最後乙個。4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...

氣泡排序及優化

氣泡排序的基本思路是 每次將相鄰兩個數比較,將小的調到前頭 本例按照從小到大排序 按此規律如果有n個數,則要進行n 1趟比較。在第1趟比較中要進行n 1次兩兩比較,在第 j 趟比較中要進行 n j 次兩兩比較。實現如下 include define n 10 int main for i 0 i n...