冒泡排序
n个数,需要比较n-1轮,n(n-1)/2次
比较数组中相邻两个数的大小,如果第一个数比第二个数大,那么交换他们的位置
第一轮比较找出最大的那个数,放在最右边
第二轮比较找出第二大的数放在倒数第二个的位置,因为第一轮已经找到最大的数了
代码实现
public static int[] sort(int[] array) {
//定义一个临时变量
int temp = 0;
//确定需要比较多少轮,因为剩下一个数不需要比,所以是n-1
for (int i = 0; i < array.length - 1; i++) {
//每比完一轮少比较一个数i
for (int j = 0; j < array.length - 1 - i; j++) {
//比较相邻两个数的大小,大的放后面,小的放前面
if (array[j+1] < array[j]) {
temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
}
return array;
}
动画展示
浙公网安备 33010602011771号