冒泡排序的优化

优化:

因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行交换,就说明序列有序,因为要在排序过程中设置一个flag标志判断元素是否进行交换,从而减少不必要的比较。


import java.util.Arrays;

public class BubbleSort {
public static void main(String[] args) {
int arr[]={3,9,-1,10,20};
//为了容纳理解,我们把冒泡排序的演变过程,给大家展示
int temp=0;//临时变量,左前右后
boolean flag=false;//表示变量,表示是否进行交换过
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if (arr[j]>arr[j+1]){
flag=true;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
System.out.println("第"+(i+1)+"趟排序后的数组");
System.out.println(Arrays.toString(arr));
if (!flag){//一趟中一次都没有
break;
}else {
flag=false;//重置进行下一次判断
}
}
}
}
posted @   开源遗迹  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示