黑马程序员技术交流社区
标题:
改进的冒泡排序
[打印本页]
作者:
开弓没有回头箭
时间:
2015-6-6 10:33
标题:
改进的冒泡排序
public static void main(String args[]){
//定义用于排序的数组
int a[]={5,10,3,68,4,52,64,12};
//调用冒泡排序方法
bubbleSort(a);
//打出排序后的数组
System.out.println(Arrays.toString(a));
}
static void bubbleSort(int [] a){
//获取数组长度
int n = a.length;
//定义boolean值,用于标识是否有交换行为发生过,发生过为true,否则为false
boolean flag=true;
//定义临时数用于交换数组中的数
int temp;
for(int i=0;i<n;i++){
if(flag==false){//是否出现交换,没有出现交换则排序已经完成
return;
}
flag=false;
for(int j=n-1;j>i;j--){
if(a[j]<a[j-1]){
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
flag=true;//出现交换,标签为真
}
}
}
复制代码
增加一个标签,每次循环判断是否有交换行为,如果没有,则说明排序已经完成,不需要下次循环,可减少循环次数,提高效率
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2