冒泡排序

来源:互联网 发布:文字填充图片软件 编辑:程序博客网 时间:2024/06/15 11:10

冒泡排序

过程:比较相邻的两个元素,较小的数冒起来,较大的数下沉 (以升序为例)
复杂:n*n
代码实现:

public static int[] BubbleSort(int[] arr){    int temp;// 做临时变量用    int len = arr.length;    for(int i = 0; i < len - 1; i++){        for(int j = len - 1; j > i; j--){            if(arr[j] < arr[j - 1]){                temp = arr[j];                arr[j] = arr[j - 1];                arr[j - 1] = temp;              }        }    }    return arr;}

今天在一片文章中看到了冒泡排序的优化(以前从来没想过),一下是代码:

public static int[] BubbleSort(int[] arr){    int temp;// 做临时变量用    int len = arr.length;    for(int i = 0; i < len - 1; i++){        boolean flag;        for(int j = len - 1; j > i; j--){            if(arr[j] < arr[j - 1]){                temp = arr[j];                arr[j] = arr[j - 1];                arr[j - 1] = temp;                  flag = true;            }        }        if(!flag)            return arr;    }    return null;}

优化主要是省去了排好序之后的无意义操作

0 0