冒泡排序
基本冒泡排序
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; }
动图展示
当你的才华还撑不起你的野心时,那你就应该静下心来学习。 清醒时做事,糊涂时读书,大怒时睡觉,独处时思考。 再难也要坚持,再好也要淡泊,再差也要自信,再多也要节省。 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经。 你成不了心态的主人,必然会沦为情绪的奴隶。 生命太短,一分钟都不要留给那些让你不快的人或事。 没有人陪你走一辈子,所以你要适应孤独。没有人会帮你一辈子,所以你要一直奋斗。 路是自己的,不必用别人的标准来框定自己的人生。