下面是使用Java语言实现冒泡排序的算法:

public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {5, 8, 1, 3, 9, 6};

        System.out.println("排序前的数组:");
        printArray(arr);

        bubbleSort(arr);

        System.out.println("排序后的数组:");
        printArray(arr);
    }

    /**
     * 冒泡排序
     * @param arr 待排序的数组
     */
    public static void bubbleSort(int[] arr) {
        int n = arr.length;

        // 外层循环控制排序轮数
        for (int i = 0; i < n - 1; i++) {
            boolean flag = false; // 标记本轮是否有元素交换
            // 内层循环控制每轮比较次数
            for (int j = 0; j < n - i - 1; j++) {
                // 如果前者大于后者,则交换它们的位置
                if (arr[j] > arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    flag = true; // 标记本轮有元素交换
                }
            }
            // 如果本轮没有元素交换,则说明已经排好序,可以直接退出外层循环
            if (!flag) {
                break;
            }
        }
    }

    /**
     * 打印数组元素
     * @param arr 待打印的数组
     */
    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}

在上述代码中,我们定义了一个 bubbleSort 方法来实现冒泡排序的逻辑。该方法中,外层循环控制排序轮数,内层循环控制每轮比较次数。在每轮比较中,如果前者大于后者,则交换它们的位置。同时,我们使用一个 flag 变量来标记本轮是否有元素交换,如果没有,则说明已经排好序,可以直接退出外层循环。

我们还定义了一个 printArray 方法来打印数组元素,方便查看排序前后的数组情况。在 main 方法中,我们定义了一个初始数组,然后调用 bubbleSort 方法进行排序,并使用 printArray 方法打印排序前后的数组

用java生成一个冒泡排序的算法

原文地址: http://www.cveoy.top/t/topic/cSLD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录