两个for循环
外循环跑一次,内循环跑一遍,找到一个最大值,最右边为最大值
相应的内循环下次就少遍历一个(最大值)
外循环再跑一次,内循环再跑一遍,找到一个最大值,最右边为第二大
相应的内循环下次就少遍历一个(第二大)
.......
public class BubbleSort {
public static void main(String[] args) {
int arr[] = new int []{-23,45,65,25,12,-56,0,85,32,16};
//冒泡排序
for (int i = 0 ;i < arr.length - 1; i++){
for(int j =0;j < arr.length -1 - i;j++){
if (arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i= 0;i < arr.length ; i++){
System.out.print(arr[i] + " ");
}
}
}
补充知识:
// 快排时间复杂度:O(nlogn)
// 冒泡时间复杂度:O(n^2)
// 堆排序、归排排序(面试可能会问)