冒泡排序
原理
从小到大的场景
- 相邻两个元素比较,如果前面大于后面,则交换
- 第一圈之后,最大的在后面
- 第二圈开始,最后一位可以不参与比较
代码
public static void bubbleSort(int[] arr){ for(int i = 0; i< arr.length -1; i++){ // -x 让每次比较的个数减一, -1,让角标越界不发生 for (int j = 0; j < arr.length - i - 1; j++) { //相邻两个比较,大的放后面 if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } public static void printArray(int[] arr){ System.out.print("[ "); for (int i = 0 ;i < arr.length ;i++){ if(i < arr.length -1){ System.out.print(arr[i]+ ",");} else { System.out.print(arr[i]+" ]"); } } } public static void main(String[] args){ int[] arr = {2,43,55,5,22,33,88,1,0}; System.out.println("Before sort : "); printArray(arr); bubbleSort(arr); System.out.println("\nAfter sort : "); printArray(arr); }
测试
Before sort :
[ 2,43,55,5,22,33,88,1,0 ]
After sort :
[ 0,1,2,5,22,33,43,55,88 ]