class Test
{
public static void swap(int [] arr,int x,int y)
{
int temp = arr[x];---------------------------------------------------------------1
arr[x] = arr[y];-------------------------------------------------------------------1
arr[y] = temp;-------------------------------------------------------------------1
}
public static void searchSort(int[] arr)
{
for (int x=0;x<arr.length-1 ;x++ )//-1防止越界,y=x+1
{
for (int y=x+1;y<arr.length ;y++ )
{
if (arr[x]>arr[y])
{
swap(arr,x,y);//交换位置----------------------------------------2
}
}
}
}
public static void printArray(int[] arr)
{
System.out.print("[");
for (int x=0;x<arr.length;x++)
{
if (x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
public static void main(String[] args)
{
int[] arr = {1,5,7,2,6,3,9};
printArray(arr);
searchSort(arr);
printArray(arr);
}
}
同学:你上面出了两问题。
1、上面的问题(1)是应将x,y作为角标传到arr数组中,进行值比较,但你没用arr;
2、下面的问题(2)是应将x,y (也就是角标)作为参数,而不是具体的值,比如arr[x],arr[y]。
|