黑马程序员技术交流社区
标题:
关于函数传参问题? 求解
[打印本页]
作者:
蔡陶军
时间:
2013-4-11 14:36
标题:
关于函数传参问题? 求解
本帖最后由 蔡陶军 于 2013-4-11 14:47 编辑
class SelectSortDemo88 {
public static void main(String[] args) {
int[] arr = {5,2,6,4,7,3,9,1};
selectSort(arr);
printArray(arr);
}
public static void selectSort(int[] arr) {
for(int i=0;i<arr.length-1;i++) {
int num = arr[i];
int index = i;
for(int j=i+1;j<arr.length;j++) {
if(arr[i]<arr[j]) {
swap(i,j,arr);
}
}
}
}
public static void swap(int a,int b,int[] arr) {
arr[a] = arr[a]^arr[b];
arr[b] = arr[a]^arr[b];
arr[a] = arr[a]^arr[b];
}
public static void printArray(int[] arr) {
System.out.print("[");
int count = 0;
for(int a:arr) {
if(count!=arr.length-1) {
System.out.print(a+",");
count++;
}else {
System.out.println(a+"]");
}
}
}
}
复制代码
我发现怎么函数传参的时候 swap这个函数 我调换i和j的位置,但是结果还是一样?而我的逻辑判断是结果会受i和j的位置变化而发生改变的,求解,大侠们
作者:
Asan
时间:
2013-4-11 15:05
本帖最后由 Asan 于 2013-4-11 15:11 编辑
差点没有看出来! 嘿嘿
for(int j=i+1;j<arr.length;j++) {
12. if(arr
<arr[j]) {
13. swap(i,j,arr); //无论你i和j怎么换
14. }
15. }
16. }
17. }
18. public static void swap(int a,int b,int[] arr) { //下面的异或运算都没有改变 十九行和二十行换了个位置,貌似没有区别吧!
19. arr[a] = arr[a]^arr
; //
arr
= arr[a]^arr
;
20. arr
= arr[a]^arr
; //
arr[a] = arr[a]^arr
;
21. arr[a] = arr[a]^arr
; //
arr[a] = arr[a]^arr
;
22. }
好像因为【b】是加粗我不知道怎么弄的,那个代码上就消失了,你自己加上
作者:
通行天下
时间:
2013-4-11 15:09
class SelectSortDemo {
public static void main(String[] args) {
int[] arr = {5,2,6,4,7,3,9,1};
printArray(arr);
selectSort(arr);
printArray(arr);
}
public static void selectSort(int[] arr) {
for(int i=0;i<arr.length-1;i++) {
//int num = arr[i];这两句没啥用
//int index = i;
for(int j=i+1;j<arr.length;j++) {
if(arr[i]<arr[j]) {
swap(i,j,arr);
}
}
}
}
public static void swap(int a,int b,int[] arr) {
arr[a] = arr[a]^arr[b];
arr[b] = arr[a]^arr[b];
arr[a] = arr[a]^arr[b];
}
public static void printArray(int[] arr) {
System.out.print("[");
int count = 0;
for(int a:arr) {
if(count!=arr.length-1) {
System.out.print(a+",");
count++;
}else {
System.out.println(a+"]");
}
}
}
}
你再试试吧,现在前后输出不一样啦。
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2