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

2021-08-28 19:34:07 字數 1188 閱讀 1446

氣泡排序

**實現:

public class bubblesort ;

sort1(arr);

system.out.println("**********===第二版本**********====");

arr = new int;

sort2(arr);

system.out.println("**********===雞尾酒排序**********====");

arr = new int;

sort3(arr);

} //第三版本,雞尾酒排序演算法

public static void sort3(int arr)

}for(int i=len-1-j; i>j; i--)

}system.out.println(arrays.tostring(arr));

if(sorted1 && sorted2)

} }//第二版本,減少每一趟的次數

public static void sort2(int arr)

}system.out.println(arrays.tostring(arr));

if(sorted)

} }//第一版本,簡單的實現氣泡排序

public static void sort1(int arr)

system.out.println(arrays.tostring(arr));

}} }

}

執行結果如下:

由第一版本的執行結果可以看出,排序在第四次執行完就已經有序,但是依然會執行第五次和第六次的排序。我們對此進行優化,加入乙個標誌位,在每趟排序執行前都假定當下資料已經排序完成,在每趟的執行過程中,如果進行了資料的交換,則標誌位置為false,如果該趟排序沒有進行資料的交換,則結束執行。

以上是簡單的氣泡排序,在氣泡排序的基礎上,我們再次進行優化,衍生出了雞尾酒排序演算法(定向氣泡排序),以上**的第三個版本為雞尾酒排序的實現。

雞尾酒排序

氣泡排序 雞尾酒排序

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實現)

雞尾酒排序也叫雙向氣泡排序,是對氣泡排序的一種優化。氣泡排序可以參照我上篇博文,對氣泡排序有乙個詳細的描述。在氣泡排序的基礎上,我們在外迴圈中再新增乙個內迴圈。那麼現在就有兩個內迴圈,第乙個內迴圈尋找最大值,而且依次從後往前放置在陣列中,第二個內迴圈尋找最小值,依次從前往後放置在陣列中。所以此時外迴...