java 双向冒泡排序

java 双向冒泡排序
冬瓜1号
2024年04月16日
|
浏览 116

双向冒泡排序(Cocktail Shaker Sort)是一种改进的冒泡排序算法,它会从左到右和从右到左交替进行冒泡排序。具体步骤如下:

  1. 从左到右进行冒泡排序,将最大的元素沉到数组的末尾。
  2. 然后从右到左进行冒泡排序,将最小的元素浮到数组的最前面。
  3. 重复以上步骤,直到所有元素有序。

下面是 Java 实现的示例代码:

复制代码
public class CocktailShakerSort {
    public static void cocktailSort(int[] arr) {
        boolean swapped = true;
        int start = 0;
        int end = arr.length;

        while (swapped) {
            swapped = false;

            for (int i = start; i < end - 1; ++i) {
                if (arr[i] > arr[i + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                    swapped = true;
                }
            }

            if (!swapped) {
                break;
            }

            swapped = false;
            end--;

            for (int i = end - 1; i >= start; i--) {
                if (arr[i] > arr[i + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                    swapped = true;
                }
            }

            start++;
        }
    }

    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        cocktailSort(arr);
        System.out.println("排序后的数组:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

这段代码演示了如何在 Java 中实现双向冒泡排序。

我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;