public class SequenceDemo {
public static void main(String[] args) {
int[] arr={3,2,7,8,34,36};
printArray(arr);
selectSort(arr);
System.out.println("");
printArray(arr);
}
public static void selectSort(int[] arr){
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++ )
{
if(arr[x]>arr[y]){
int temp=arr[y];
arr[y]=arr[x];
arr[x]=temp;
}
}
}
}
这个程序可以正常运行,但是当我把 int temp=arr[y];
arr[y]=arr[x];
arr[x]=temp; 给封装成函数时,为什么就不错结果呢,代码如下
:
package cn.itcast;
public class SequenceDemo {
public static void main(String[] args) {
int[] arr={3,2,7,8,34,36};
printArray(arr);
selectSort(arr);
System.out.println("");
printArray(arr);
}
public static void selectSort(int[] arr){
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++ )
{
if(arr[x]>arr[y]){
exchange(arr[x],arr[y]);
}
}
}
}
public static void exchange(int a,int b){
int temp=a;
a=b;
b=temp;
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}
else
System.out.print(arr[i]);
}
System.out.print("]");
}
}
这个程序运行的结果数组根本就没有进行排序,求解释,谢谢
|
|