排序程序检错结果

/*
需求:选择排序法:
思路:利用数组进行排序。
也是定义一个max=0;
将arr[max]逐个与元素进行比较;
使用内循环。i=1;i<arr.length-j;i++
若小于,则进行互换,最后得到一个最大值,
再对arr[x-1]进行此操作。用j控制:
使用外循环。j=0;j<arr.length;j++

如此,依次循环。
*/

class paixu
{
public static void main(String[] args)
{
int[] x={9,1,5,7,3,6,0,4,2};
int length=x.length;
System.out.println("length="+length);
paixu(x);
}
public static void paixu(int[] array)
{

for(int j=0;j<array.length;j++) //j从0到length-1.j=0时,对数组0-length-1进行遍历。 对于j=1,对数组从0到length-2进行遍历。
{
int max=array[0]; /*
将数组0赋给max。!!!!将数组0赋给max,若数组0最大,则后面一直将最大值赋给后面的数,
而数组0中的数并改变,数组0中仍然是最大的!!!应该将0也参与到互换中,而不是将数组0赋给max,
让max依次与后面的元素进行比较。
*/
for(int i=1;i<array.length-j;i++) //将数组从1遍历到length-1,将max与后面各项逐一进行比较。
{
if(max<array[i]) //如第1项,如果max小于arr[1],将他俩进行互换。如第2项,若max小于数组2,则进行交换。直至到length-1.
{
int temp;
temp=max;
max=array[i];
array[i]=temp;
}

} //此时,max是0到length里最大值。
array[array.length-j-1]=max;//将最大值赋给length-1.
System.out.println("max"+(j+1)+"="+max);
}
for(int i=0;i<array.length;i++)
{
System.out.println(array[i]+";");
}
}

}

原文地址:https://www.cnblogs.com/q1002938237/p/4915744.html