用Java实现鸡尾酒排序
时间: 2024-05-06 14:19:43 浏览: 5
鸡尾酒排序(Cocktail Sort)也称为双向冒泡排序(Bidirectional Bubble Sort),是一种冒泡排序的变种。
鸡尾酒排序的过程与冒泡排序类似,只不过排序过程是双向的,即从左到右排序一遍后再从右到左排序一遍,以此类推,直到所有元素都有序。
Java实现鸡尾酒排序的代码如下:
```java
public class CocktailSort {
public static void cocktailSort(int[] arr) {
int left = 0, right = arr.length - 1;
while (left < right) {
// 从左到右排序
for (int i = left; i < right; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
right--;
// 从右到左排序
for (int i = right; i > left; i--) {
if (arr[i - 1] > arr[i]) {
int temp = arr[i];
arr[i] = arr[i - 1];
arr[i - 1] = temp;
}
}
left++;
}
}
public static void main(String[] args) {
int[] arr = {5, 2, 6, 1, 3, 9, 4, 8, 7};
cocktailSort(arr);
System.out.println(Arrays.toString(arr));
}
}
```
在上面的代码中,我们定义了一个`cocktailSort`方法来实现鸡尾酒排序,该方法接收一个整型数组作为参数,并通过双向循环来实现排序。
在主函数中,我们定义了一个整型数组`arr`并初始化,然后调用`cocktailSort`方法对其进行排序,并输出排序后的结果。
运行上面的代码,输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8, 9]
```
可以看到,经过鸡尾酒排序后,数组已按升序排列。