冒泡排序的简单优化

冒泡排序的简单优化

pubic class BubbleSort{
    public static void main(String[] args) {
        int[] arr = {2,76,342,564,123,5634,23,4,67,87,54124,34};
        for (int i = 0; i < arr.length; i++) {
            boolean flag = true;//用于记录交换位置
            for (int j = 0; j <arr.length-i-1 ; j++) {
                if (arr[j] > arr[j+1]){
                    int temple = arr[j];
                    arr[j] =arr[j+1];
                    arr[j+1] = temple;
                    flag = false;//当交互位置时,改变标志状态
                }
                if(flag){//如果已经交互,之后就不会再交换,退出本次循环
                    break;
                }
            }
     
}
  • 第一层的循环,我们用来遍历数组的所有元素,以此来给每个元素排序,故我们在第一次初始化一个标识。
  • 第二层用于找出本轮需要找出的元素通过交换位置,如果一次位置都没有交换,代表本轮已经排序好了。
posted @ 2020-05-12 10:24  小徐学狂  阅读(126)  评论(0)    收藏  举报