考虑排序一手扑克牌的情景:开始时,我们的左手为空,桌子上的牌面向上并摊开。然后,我们每次从桌子上拿走一张当前最大的牌并将它移入左手中。为了找到当前最大的一张牌,我们从右到左扫描桌面的牌,扫描过程中总是用右手指着已经扫描过的牌里最大的牌,扫描结束就会找到最大的牌。重复上述过程,直到桌子上的牌被拿完。
public class PaiXu {
public static void method(int datas[]) {
int count=0,max=-1,flag=0;
for(int i=0;i<datas.length;i++) {
for(int j=datas.length-1;j>=0;j--) {
if(datas[j]!=-1) {
count++;
if(datas[j]>max) {
max=datas[j];
flag=j;
}
}
}
System.out.println("第"+(i+1)+"次的最大值为:"+datas[flag]);
datas[flag]=-1;
max=-1;
flag=0;
}
System.out.println("总共比较的次数为:"+count);
}
public static void main(String[] args) {
int datas[]= {4,1,3,7};
method(datas);
}
}
————————————————
版权声明:本文为CSDN博主「piaoyiren」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/piaoyiren/article/details/112847983