冒泡排序
程序员文章站
2022-07-26 17:30:15
public class MaoPao { public static void main(String []args){ int []s={1,4,2,5,3,6,7}; int temp; for(int i=0;i
冒泡排序
基本思想
冒泡排序的基本思想是:通过对待排序序列从前往后(从下标较小的元素开始),依次比较相邻元素的值,如发现逆序交换,使较大的值往后移。
图解
代码实现
public static void main(String[] args) {
int array[] = {10, 8, 3, 5, 2, 7, 1, 4, 9, 6};
//临时变量用来交换数据
int temp = 0;
//boolean变量控制结束条件
boolean flag = false;
//排序的趟数
for (int i = 0; i < array.length - 1; i++) {
flag = false;
//第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;
//如果交换,给flag赋值为true
flag = true;
}
}
//如果没有交换,证明已经有序,直接退出循环
if (!flag) {
break;
}
System.out.printf("第%d趟循环的结果为:", (i + 1));
System.out.println(Arrays.toString(array));
}
}
结果显示
备注
这里做了优化,如果在某一次的比较中发现没有数据的位置发生交换,则直接退出程序,不会再继续比较下去,相对来说提高了代码的运行速度。
本文地址:https://blog.csdn.net/weixin_54143690/article/details/111998199
上一篇: 对话马斯克:如何防止人工智能掌控世界