冒泡排序

public class BubbleSort {

    /**
     * 冒泡排序
     * @param a 待排序的数组
     */
    public static void bubbleSort1(int[] a) {
        for (int i = 0; i < a.length - 1; i++) {
            for (int j = 0; j < a.length - i - 1; j++) {
                if (a[j] > a[j+1]) {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
    }

    /**
     * 冒泡排序的优化:加入标记状态 flag,若在一次冒泡中,没有交换 则说明可以停止 减少运行时
     * @param a 待排序的数组
     */
    public static void bubbleSort2(int[] a) {
        boolean flag = true;
        for (int i = 0; i < a.length - 1 && flag; i++) {
            flag = false;
            for (int j = 0; j < a.length - i - 1; j++) {
                if (a[j] > a[j+1]) {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                    flag = true;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] a = {7,9,4,2,10,6,1,8,5,3,-1,0};

        bubbleSort2(a);

        for (int i : a)
            System.out.print(i + ",");
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容