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