比较相邻的元素,如果第一个元素比第二个元素大,就交换。
相同元素的前后顺序不会改变,所以冒泡排序是一种稳定的排序算法。
public class Bubblesort {
public static void main(String[] args) {
int[] arr = {34, 4, 56, 17, 90, 65};
// 这是从小到大排序
// 外层循环控制轮数,长度减一,因为下标从0开始
for (int i=0; i< arr.length-1; i++) {
// 内层循环判断大小,依次递减
// i=0, arr.length-1-0=5
// i=1, arr.length-1-1 = 4
for (int j=0; j < arr.length-1-i; j++) {
if (arr[j] > arr[j+1]) {
arr[j] = arr[j] + arr[j+1];
arr[j+1] = arr[j] - arr[j+1];
arr[j] = arr[j] - arr[j+1];
}
}
}
// 输出结果
for (int x:arr) {
System.out.println(x);
}
}
}
那同理,如果要从大到小排序,只需要将上面代码块的比较调换一下即可。
网友评论