显示的排序结果就是不对,不知道为什么,大家来讨论一下!
public class  SortIntArray
{
public static void main(String[] args) 
{
int[] iArr={2,6,1,3,8,10,9};
iArr = selectSort(iArr);
for(int i=0;i<iArr.length;i++)
{
System.out.print(" " + iArr[i]);
}
          }
public static int[] selectSort(int[] iArr)
{
int k = 0;
for(int i=0;i<iArr.length-1;i++)
{
k = i;
for(int j=i+1;j<iArr.length;j++)
{
if(iArr[k] < iArr[j])
{
k = j;
}
if(k != i)
{
int temp = iArr[i];
iArr[i] = iArr[k];
iArr[k] = temp; for(int m=0;m<iArr.length;m++)
{
System.out.print(" " + iArr[m]);
} System.out.println("#############");
}
}
}
return iArr;
}
}

解决方案 »

  1.   

    for (int j = i + 1; j < iArr.length; j++)
    if (iArr[k] > iArr[j]) {
    k = j;
    }
    int temp = iArr[i];
    iArr[i] = iArr[k];
    iArr[k] = temp;
      

  2.   

    soulsteal(冒菜) 你的方法也不对,你运行一下就知道了!
      

  3.   

    你的程序整个就不舒服...
    public class TestExtends {
    public TestExtends() {
    int[] iArr = { 2, 6, 1, 3, 8, 10, 9 };
    iArr = selectSort(iArr);
    for (int i = 0; i < iArr.length; i++) {
    System.out.print(" " + iArr[i]);
    }
    } public int[] selectSort(int[] iArr) {
    int k = 0;
    for (int i = 0; i < iArr.length - 1; i++) {
    k = i;
    for (int j = i + 1; j < iArr.length; j++) {
    if (iArr[k] > iArr[j]) {
    k = j;
    }
    }
    int temp = iArr[i];
    iArr[i] = iArr[k];
    iArr[k] = temp; for (int m = 0; m < iArr.length; m++) {
    System.out.print(" " + iArr[m]);
    } System.out.println("#############"); }
    return iArr;
    } public static void main(String[] args) {
    new TestExtends();
    }}
    这是我照你的稍微整理一下,关键的地方就是for (int j = i + 1; j < iArr.length; j++)只作用在if (iArr[k] > iArr[j]) {
    k = j;
    }
      

  4.   

    不要意思,范了个低级错误,现在改正了,里面的for扩的太远了,应该就在 if 后面
    for(int j=i+1;j<iArr.length;j++)
    {
    if(iArr[k] < iArr[j])
    {
    k = j;
    }
    }
      

  5.   

    直接用java.uitl.Arrays.sort(iArr);
    方法就可以排序
      

  6.   

    java.util.Arrays
    上面我打错了