冒泡排序
过程:比较相邻的两个元素,较小的数冒起来,较大的数下沉 (以升序为例) 复杂: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;}优化主要是省去了排好序之后的无意义操作
新闻热点
疑难解答