当前位置: 代码迷 >> Java相关 >> 交换排序 错在哪里啊。
  详细解决方案

交换排序 错在哪里啊。

热度:65   发布时间:2010-06-21 19:29:37.0
交换排序 错在哪里啊。

public class Swap {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //交换法
        
        int[] score = new int[100];
        //初始化数组
        for (int i = 0; i <= score.length - 1; i++) {
            score[i] = (int)(Math.random() * 100);
        }        
        int temp ;//中间变量
        int i ;
        int j ;
        for (i = 0; i < score.length - 1; i++) {
            int min = i;//假设最小值
            
            //找最小值
            for (j = i + 1; j <= score.length - 1; j++) {
                if (score[j] < min) {
                    min = j;
                }
            }
            //交换最小值的位置
            if (min != i) {
                j--;
                temp = score[i];
                score[i] = score[j];
                score[j] = temp ;
            }
        }
        
        System.out.println("排序后的数组:");
        for (int k = 0; k <= score.length - 1; k++) {
            if (k % 10 == 0) {
                System.out.println();
            }
            System.out.print(score[k]+"\t");
        }
        
    }
   

}

----------------解决方案--------------------------------------------------------
public class Swap{
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] score = new int[100];
        // 初始化数组
        for (int i = 0; i <= score.length - 1; i++)
            score[i] = (int)(Math.random()*100);      
        int temp ;// 中间变量
        int i ;
        int j ;
        for (i = 0; i < score.length - 1; i++)
            for (j = i + 1; j <score.length; j++)
            {
                if (score[j] < score[i])
                {
                temp = score[i];
                score[i] = score[j];
                score[j] = temp ;
            }
        }
        System.out.println("排序后的数组:");
        for (int k = 0; k <= score.length - 1; k++)
        {
            if (k % 10 == 0)
                System.out.println();
            System.out.print(score[k]+"\t");
        }  
    }
}
----------------解决方案--------------------------------------------------------
好的,谢谢
----------------解决方案--------------------------------------------------------
  相关解决方案