冒泡排序为啥要将呢?额,其实虽然是个时间复杂度 O(n^2) 的算法,但是我以前一直把算法思路搞错了。代码确实很简单呀,但是算法思路搞错了意味着我的代码写错了。。。。
冒泡排序外层主要控制排序的轮数,一共有n轮。而内层主要是用来排序的,它的作用是每次都从数组的开始位置排,确保不会漏,比如说[3,2,1]。
比如,原数组如下:要排序数组:[10,1,35,61,89,36,55],那么排序的过程:
冒泡排序过程
代码:
package com.example.demo;
/**
* @author xushu
* @create 2020/2/11 12:57 下午
* @desc
*/
public class Test11 {
public static void bubboSort(int[] array){
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array.length - 1; j++){
if(array[j] > array[j + 1]){
swap(array, j, j + 1);
}
}
}
}
public static void swap(int[] array, int i, int j){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
public static void main(String[] args) {
int[] array = {3,4,2, 2,61,89,36,55};
bubboSort(array);
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
}
}