java吧 关注:1,240,602贴子:12,712,141
  • 3回复贴,共1

排序的一个问题 想不通啊

取消只看楼主收藏回复

一般情况下 选择排序我是这样写:
for(int x = 0 ; x < num.length-1 ; x++){
for(int y = x ; y <num.length ; y++){
if(num[x] < num[y]){
int temp = num[x];
num[x] = num[y];
num[y] = temp;
但是经常把第二行写成
for(int y = 0 ; y < num.length ; y++){
竟然也能排出来 用笔算了下 发现它看着杂乱的情况下就把顺序排好了 也不算得上冒泡排序 百思不得解 求大神指教


1楼2014-06-20 11:02回复
    everybody


    2楼2014-06-20 11:26
    回复
      说前面已经排序排好的都不对。。。因为这个算法是不停的把1换到各个位置
      拿3142来说,四轮循环的结果分别是1342,3142,4132,4321


      7楼2014-06-21 11:59
      回复

        @zfei19831104 3142只是我举得例子,没运行过 四轮循环的结果是 1342,3142,4132,4321 是在纸上算出来的 但是图上这个运行无误


        10楼2014-06-22 18:49
        回复