氣泡排序高階 雞尾酒排序(java實現)

2021-08-19 09:51:31 字數 629 閱讀 7333

雞尾酒排序也叫雙向氣泡排序,是對氣泡排序的一種優化。

氣泡排序可以參照我上篇博文,對氣泡排序有乙個詳細的描述。

在氣泡排序的基礎上,我們在外迴圈中再新增乙個內迴圈。那麼現在就有兩個內迴圈,第乙個內迴圈尋找最大值,而且依次從後往前放置在陣列中,第二個內迴圈尋找最小值,依次從前往後放置在陣列中。所以此時外迴圈的次數就變為(array.length/2).

下面用**演示:

public class sad ;

for(int i=0;i

}       for(int j=array.length-i-1;j>i;j--) }}

for(int i=0;isystem.out.println(array[i]);}}

需要注意的幾點:

1.第一內迴圈和第二個內迴圈的迴圈變數i的方向是反的,這是因為當迴圈變數i的值從小到大時,無論你找的最大值還是最小值都是從後邊先放置的;同理當迴圈變數i的值從大到小時,無論你找的最大值還是最小值都是從前邊先放置的,所以兩個內迴圈的i的大小方向不同,才不會引起陣列排列的混亂。

2.當外迴圈迴圈完畢時,整個陣列後半邊的順序是由第乙個內迴圈通過尋找最大值的氣泡排序得到,而前半邊的順序是由第二個內迴圈通過尋找最小值的氣泡排序得到。

氣泡排序 雞尾酒排序

include 交換函式 void swap int a,int i,int j 列印陣列 void printa int a,int len printf n 氣泡排序 int main1 int len sizeof a sizeof a 0 int i,j 外層迴圈控制輪數,每一輪找出乙個最大...

氣泡排序案例,雞尾酒排序

概念 依次比較相鄰的兩個數,將小數放在前面,大數放在後面 第一趟可得到 將最大數放到最後一位,第二趟可得到 將第二大的數放到倒數第二位,如此下去,重複以上過程,直至最終完成排序。由於排序過程中,總是將小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。思路 用二重迴圈實現,外迴圈變數設為i...

氣泡排序(雞尾酒排序)的Java實現

氣泡排序 實現 public class bubblesort sort1 arr system.out.println 第二版本 arr new int sort2 arr system.out.println 雞尾酒排序 arr new int sort3 arr 第三版本,雞尾酒排序演算法 p...