冒泡排序
public static void main(String[] args){
int[] arr ={0, 3, 2, 1, 9, 8, 5, 6, 7, 4};
for (int i = 0; i <arr.length ; i++) {
//因为相邻比较,所以每次内循环最小的永远在右边,所以排到最后边的就不需要排序了,所以内循环遍历的次数需要外循环以遍历的次数
for (int j = 0; j <(arr.length-1-i) ; j++) {
sortLeft(arr,j,j+1);
}
}
System.out.println(Arrays.toString(arr));
}
static void sortLeft(int[] arr,int left,int right){
if (arr[left]<arr[right]){
int temp = arr[right];
arr[right] = arr[left];
arr[left] = temp;
}
}
- 暴力排序是将数组循环两边 每个角标比较,如此遍历次数为100次
- 冒泡排序则是45次
- 冒泡排序其实主要是外循环遍历,内循环只是负责把最(大或小)值找出来放到最右边
网友评论