鸡尾酒排序的 Java 程序
鸡尾酒排序与冒泡排序相反,冒泡排序中元素从左向右迭代,首先将最大元素放置到它自己的正确位置,依此类推。而在鸡尾酒排序中,元素按两种方向(左和右)交替迭代。
下面是鸡尾酒排序的程序 −
示例
public class Demo{ static int temp; static void Cocktail(int a[], int n){ boolean swap = true; int begin = 0,i; int end = n - 1; while (swap) { swap = false; for (i = begin; i < end; ++i){ if (a[i] > a[i + 1]){ temp = a[i]; a[i]=a[i+1]; a[i+1]=temp; swap = true; } } if (!swap) break; swap = false; for (i = end - 1; i >= begin; --i){ if (a[i] > a[i + 1]){ temp = a[i]; a[i]=a[i+1]; a[i+1]=temp; swap = true; } } ++begin; } } public static void main(String[] args) { int my_arr[] = {34, 78, 90, 32, 67, 12, 1, 0, 95}; Cocktail(my_arr, my_arr.length); System.out.println("The sorted array is "); for (int i = 0; i < my_arr.length; i++) System.out.print(my_arr[i]+" "); System.out.println(); } }
输出
The sorted array is 0 1 12 32 34 67 78 90 95
在第一步中,循环从左向右运行(类似于冒泡排序),在此期间比较相邻元素。如果左元素大于右元素,则交换这些值。一旦第一次迭代结束,最大的元素将位于数组末尾。在下一步中,循环从右向左运行,忽略最近排序的元素。在这里,再次比较相邻元素并把较大的元素添加到数组末尾。
广告