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]。 
 
 |