冒泡排序
Posted monkey1024
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。
基本冒泡排序
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;
动图展示
以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章