冒泡排序的一个简单优化及测试

就是判断在一次比较中是不是有换位置。如果没换,结束

package a;

import java.util.Arrays;

public class Bobble {
    public static void main(String[] args) {
//        int [] arr= {1,2,3,4,5};
//        int [] arr= {2,8,-5,20,-9};
        int[] arr = new int[80000];
        for (int i = 0; i < 80000; i++) {
            arr[i] = (int)(Math.random()*80000000);

        }
        long sta = System.currentTimeMillis();
        int temp =0;
        boolean flag = false;
        for (int i = 0; i < arr.length-1; i++) {//因为冒泡排序是找位置,一共五个,找到四个就OK了  所以循环次数-1
            for (int j = 0; j < arr.length-1-i; j++) {//这个-1 是因为 j+1 ,-i 是因为第二次之后,找到的就不需要比较了。
                if (arr[j] > arr[j + 1]) {
                    flag =true;
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }


            }
            if (!flag) {
                System.out.println("break");
                break;
            }
            flag = false;

        }
        System.out.println(Arrays.toString(arr));
        long end = System.currentTimeMillis();
        System.out.println((end-sta)/1000);
    }
}

测试了时间。

发布了66 篇原创文章 · 获赞 0 · 访问量 755

猜你喜欢

转载自blog.csdn.net/Be_With_I/article/details/104247084
今日推荐