美文网首页
冒泡排序

冒泡排序

作者: wayneinyz | 来源:发表于2017-11-02 12:09 被阅读10次
    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 + ",");
        }
    
    }
    

    相关文章

      网友评论

          本文标题:冒泡排序

          本文链接:https://www.haomeiwen.com/subject/xbyopxtx.html