冒泡排序算法的原理如下:(从后往前)
假如有一组乱序的数列,对比相邻的元素。如果第一个比第二个大,那么交换他们两个,并对每一对相邻的元素做相同的操作,从开始的第一对到最后结尾的最后一对。针对所有元素重复以上操作,除了最后一个。
手动比较实现步骤:
31 11 25 53 76 34
第一轮比较:11 25 31 53 34 76 (比较5次)
第二轮比较:11 25 31 34 53 (比较4次)
第三轮比较:11 25 31 34 (比较3次)
第四轮比较:11 25 31 (比较2次)
第五轮比较:11 25 (比较1次)
代码实现:
public class test01 {
public static void main(String[] args) {
// 声明一个乱序的数列(待排序)
int[] num = {31, 11, 25, 53, 76, 34};
// 通过第三变量来存储交换数字
int flag;
//外层循环控制轮数
for (int i = 1; i < num.length - 1; i++) {//比较的轮数等于数列的长度-1
// 内循环控制比较的次数
for (int j = 0; j < num.length - 1 - i; j++) {
if (num[j]>num[j+1]){
flag = num[j+1];
num[j+1]=num[j];
num[j] = flag;
}
}
}
// 冒泡排序后对数列进行打印输出
for (int n =0;n<num.length;n++){
System.out.print(num[n] +" ");
}
}
}
打印输出的结果:![](https://i-blog.csdnimg.cn/blog_migrate/eb7fe01e7502ba29702e343074eae7b4.png)
PS:冒泡排序是一种稳定的排序方式,当数字相同的时候不会对数组顺序进行更改,这个性质或者好处可以用于‘成绩排序中’