package exercise;public class Paixu { /**
 * @param args
 */
public static void main(String[] args) {

// TODO 自动生成方法存根
Paixu cs=new Paixu();
int num[]={2,3,5,1,7,9,12,45,4,8};

for(int i=0;i<num.length;i++)
System.out.print(num[i]+" ");
System.out.println();
cs.paixu(num);


for(int i=0;i<num.length;i++)
System.out.print(num[i]+" ");
System.out.println();

}
public void paixu(int[] num)
{
for(int i=0;i<num.length;i++)
{
int min=0;
for(int j=i;j<num.length;j++)
{
if(num[j]<num[min])
{
min=j;
}
}
int tmp;
tmp=num[i];
num[i]=num[min];
num[min]=tmp;
}
}}
输出结果如下:
2 3 5 1 7 9 12 45 4 8 
45 1 2 3 4 5 7 8 9 12 
why???

解决方案 »

  1.   

    public void paixu(int[] num)
    {
    for(int i=0;i<num.length;i++)
    {
    int min=0; ///////////////////////这个地方怎么是从0开始呢?应该是从i开始
    for(int j=i;j<num.length;j++)
    {
    if(num[j]<num[min])
    {
    min=j;
    }
    }
    int tmp;
    tmp=num[i];
    num[i]=num[min];
    num[min]=tmp;
    }
    }
      

  2.   

    public void paixu(int[] num)
    {
    for(int i=0;i<num.length;i++)
    {
    int min=i;
    for(int j=i;j<num.length;j++)
    {
    if(num[j]<num[min])
    {
    min=j;
    }
    }
    int tmp;
    tmp=num[i];
    num[i]=num[min];
    num[min]=tmp;
    }
    }