【狂神说Java学习笔记】阶段一JavaSE基础(九)冒泡排序
笔记内容:狂神说Java阶段一Java基础视频P58
狂神说Java视频链接
目录
代码
int[] arrays = {4,2,3,1};
int[] sortArray = sort(arrays);
System.out.println(Arrays.toString((sortArray)));
public static int[] sort(int[] array) {
int temp = 0;
//外层循环:大循环的次数
for (int i = 0; i < array.length-1; i++) {
//内层循环:数与数之间的比较次数
for (int j = 0; j < array.length-1-i; j++) {
if ( array[j] > array[j+1] ) {
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
代码解释:
外层最多循环三次,最小的数就一定能循环到排序位置的首位。
同理,内层只用依次循环3、2、1次,最大的数就一定能排到排序位置的最高位,因此下一次循环就没必要再循环最后一个数和倒数第二个数,所以每次数与数之间比较的次数要减少1(j的array.length-1-i
就是这个作用,因为i每次增加1,相当于j每次都多减了1,即每次数与数之间的比较的次数就减少了1),即并不是每次都完全把所有的数便利了一遍。