黑马程序员技术交流社区
标题:
大伙帮我看看,为啥结果不是排序
[打印本页]
作者:
王龙
时间:
2012-10-19 21:26
标题:
大伙帮我看看,为啥结果不是排序
package number1;
public class Test5 {
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[x];
temp=arr[y];
arr[y]=temp;
}
}
}
}
public static void main(String[] args){
int[] arr={5,3,2,6,2,7,9,-1};
//排序前
printArray(arr);
//排序
selectSort(arr);
//排序后
printArray(arr);
}
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]+"]");
}
}
}
}
作者:
王虎
时间:
2012-10-19 21:38
temp=arr[y];
----------------------改成arr[x] = arr[y]
作者:
宫明星
时间:
2012-10-19 21:42
int temp=arr[x];
temp=arr[y]; //这里错了,改成arr[x]=arr[y];
arr[y]=temp;
顺序是先把arr[x]的值给temp
再把arr[y]的值给arr[x],最后再把temp的值给arr[y]。
整个构成一个换位操作。
作者:
武庆东
时间:
2012-10-19 21:58
出现在该方法中
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[x];
temp=arr[y];
//没有进行数据交换,改为 arr[x]=arr[y]
arr[y]=temp;
}
}
}
}
作者:
王晓州
时间:
2012-10-19 21:59
int temp = arr[x];
temp = arr[y];
这两句变量temp被赋值两次,结果为最后面的arr[y];
作者:
给生活加点料
时间:
2012-10-19 22:18
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[x];
temp=arr[y];
// 改成arr[x ] = arr[y];
arr[y]=temp;
}
}
}
}
作者:
王龙
时间:
2012-10-19 22:36
非常感觉大家,喁喁
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2