黑马程序员技术交流社区

标题: 我的选择排序算法跟毕向东老师的算法那个好?更易理解? [打印本页]

作者: zhy934453950    时间: 2015-4-15 20:17
标题: 我的选择排序算法跟毕向东老师的算法那个好?更易理解?
本帖最后由 zhy934453950 于 2015-4-15 20:48 编辑

因为自己有些编程的底子,仅仅是看了下数组选择排序的思路,就自己开始写代码了。没想到写完了,跟视频上老师写的范例代码不一样,可是结果是一样的,我的算法逻辑上也说得通。众所周知,只要思路正确,结果正确。代码不同才是正常的,所以我发下自己代码和视频老毕的代码你们看看那个算法哪个好?哪个更易理解?
我的代码:public static void arrXZpaixu(int[] arr)
        {
                for(int i=0;i<arr.length;i++)
                {
                        for(int j=0;j<arr.length;j++)
                        {
                                if(arr<arr[j])
                                {
                                        arr=arr^arr[j];
                                        arr[j]=arr^arr[j];
                                        arr=arr^arr[j];
                                }
                        }
                }
        }
视频中老毕算法
public static void arrXZpaixu(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])
                                {                                 
                                 temp=arr[x];
                                 arr[x]=arr[y];
                                 arr[y]=temp;
                                }
                        }
                }
        }



作者: adalvik    时间: 2015-4-15 20:29
膜拜
arr<arr[j]
数组 < int 是啥意思。求解 你这编译怎么过的
作者: 路飞    时间: 2015-4-15 20:40
我也看了看你的代码,也从编译器上试了试,可能自己学的比较浅薄,看不懂你的代码,特别是循环体部分,求赐教!
作者: zhy934453950    时间: 2015-4-15 20:43
本帖最后由 zhy934453950 于 2015-4-15 20:45 编辑

粘贴出错了是  if(arr<arr[j])
                                {
                                        arr=arr^arr[j];
                                        arr[j]=arr^arr[j];
                                        arr=arr^arr[j];
                                }

作者: zhy934453950    时间: 2015-4-15 20:46
路飞 发表于 2015-4-15 20:40
我也看了看你的代码,也从编译器上试了试,可能自己学的比较浅薄,看不懂你的代码,特别是循环体部分,求赐 ...

在不通过第三变量的情况下,交换数组元素啊

作者: 路飞    时间: 2015-4-15 20:58
zhy934453950 发表于 2015-4-15 20:46
在不通过第三变量的情况下,交换数组元素啊

想起来了,学的太仓促忘了!
作者: 路飞    时间: 2015-4-15 21:02
zhy934453950 发表于 2015-4-15 20:46
在不通过第三变量的情况下,交换数组元素啊

但代码感觉还是有问题,数组引用怎么可以与数组元素比较呢?
作者: zhy934453950    时间: 2015-4-15 21:32
路飞 发表于 2015-4-15 21:02
但代码感觉还是有问题,数组引用怎么可以与数组元素比较呢?

只有在数组引用之后情况下才能操作数组中的元素啊
数组只有为NULL的时候才不能被操纵(个人理解)
作者: leonard    时间: 2015-4-15 21:47
不符合选择排序的思想啊!这样每次排序都要从arr[0]开始比较,效率比较低。
作者: major2015    时间: 2015-4-15 21:50
编译通不过。。。
作者: kitboxer    时间: 2015-4-15 21:52
添两端代码,计算一下你的算法总共用了多少步,和毕老师的比较一下
作者: 缤纷落叶    时间: 2015-4-15 21:53
各自有各自的好处和优点
作者: zhw634631    时间: 2015-4-15 22:05
可以哦,努力努力




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2