标签:null lis turn 冒泡排序 排序 开始 ++ bubble info
基本冒泡排序
1 public static void bubbleSort(int[] list) { 2 int temp = 0; // 用来交换的临时数 3 // 要遍历的次数 4 for (int i = 0; i < list.length; i++) { 5 // 从后向前依次的比较相邻两个数的大小,遍历一次后,把数组中第i小的数放在第i个位置上 6 for (int j = list.length - 1; j > i; j--) { 7 // 比较相邻的元素,如果前面的数大于后面的数,则交换 8 if (list[j - 1] > list[j]) { 9 temp = list[j - 1]; 10 list[j - 1] = list[j]; 11 list[j] = temp; 12 } 13 } 14 System.out.print(list[i]+","); 15 } 16 }
最优解冒泡排序
排序方法(优化:当某趟没有发生交换,说明数组已经有序,就中断程序)
public static void bubbleSort(int[] arr) { //判断要排序的数据是否为空 if (arr == null || arr.length < 2) { //为空直接退出 return; } //开始排序 for (int i = arr.length - 1; i > 0; i--) { boolean swapped = false; for (int j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); swapped = true; } } if(!swapped) { break; } } }
交换位置
public static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }
动图展示
标签:null lis turn 冒泡排序 排序 开始 ++ bubble info
原文地址:https://www.cnblogs.com/monkey1024/p/11489135.html