雞尾酒排序的 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
在第一步中,迴圈從左向右執行(類似於氣泡排序),在此期間比較相鄰元素。如果左元素大於右元素,則交換這些值。一旦第一次迭代結束,最大的元素將位於陣列末尾。在下一步中,迴圈從右向左執行,忽略最近排序的元素。在這裡,再次比較相鄰元素並把較大的元素新增到陣列末尾。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP