java 关于冒泡排序的优化,下面这种优化的原理是什么??

方法②:记录每一次元素交换的位置,当元素交换的位置在第0个元素时,则排序结束。... 方法②:记录每一次元素交换的位置,当元素交换的位置在第0个元素时,则排序结束。 展开
 我来答
仙戈雅3n
2017-03-06 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:903万
展开全部

冒泡排序的优化版原理在于如果循环体发生过交换那么它的哨兵肯定是变化过的,反之哨兵还是原来的。而这个哨兵你可以用数组下标为0即首元素作为哨兵也可以,也可以借助其它辅助变量。例如下面的算法冒泡算法优化版是借助了flag作为哨兵:

// 冒泡算法优化版
static void bubbleSort(int ...array){
int i,j;
boolean flag=true;
for(i=0;i<array.length&&flag;i++){
flag=false;
for(j=array.length-2;j>=i;j--){ // 由后往前逆推
if(array[j]>array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
}
}

for(int item:array){
 System.out.println(item);
 }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式