黑马程序员技术交流社区
标题:
求帮助
[打印本页]
作者:
小feng
时间:
2015-4-2 20:31
标题:
求帮助
// 选择排序
class day
{
public static void selectSort(int[] arr)
{
//帮我看看这里,源代码是我自己写的范围。注释的是看视频中老师写的范围。。这俩有什么区别么。。自己实在看不出
看的好纠结啊。。我自己写的也是对的。。可是不知道跟老师写的差别在哪里!
for(int x=1;x<arr.length;x++) //(int x=0;x<arr.length-1;x++);
{
for(int y=0;y<x;y++) //(int y=x+1;y<arr.length;y++);
{
if(arr[y]<arr[x])
{
int z=arr[x];
arr[x]=arr[y];
arr[y]=z;
}
}
}
return;
}
public static void print(int[] arr)
{
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={12,19,78,65,15,63,34,78};
print(arr);
selectSort(arr);
print(arr);
}
}
作者:
cuidianlong
时间:
2015-4-2 20:31
int[] arr={12,19,78,65,15,63,34,78};
//(int x=0;x<arr.length-1;x++); 按索引能取出的数是12,19,78,65,15,63,34,arr.length-1去掉了结尾
//(int y=x+1;y<arr.length;y++); 按索引能取出的数是19,78,65,15,63,34,78 ,x+1是去掉了开头
(int x=1;x<arr.length;x++) 按索引能取出的数是19,78,65,15,63,34,78,x=1 是去掉了开头
(int y=0;y<x;y++) 按索引能取出的数是129,,19,78,65,15,63,34,y<x是去掉了结尾
作者:
joexiny
时间:
2015-4-2 21:06
本帖最后由 joexiny 于 2015-4-2 21:12 编辑
写的都对吧 只不过你后面注释的是根据length进行长度判断,而前面则是 首先知道了X的范围,通过X判断条件对y进行判断。
作者:
一袭蓝10
时间:
2015-4-2 21:54
你的排序结果是降序,老师的排序结果是升序
作者:
快乐ABC
时间:
2015-4-3 09:03
你的是降序的排列,又看到了一种思想
作者:
遗失陌上
时间:
2015-4-3 21:52
老师的是通过增加y的初始化值来减少内循环次数,老师的内循环次数是逐渐减少的。你的是通过增加x的来不断提升内循环次数,你的内循环次数是逐渐增加的
作者:
淡然无味
时间:
2015-4-4 16:13
数组的下标是从0开始的,最后一个元素的下标是arr.length-1;你自己写的代码里面是从1开始的,
作者:
wk843620202
时间:
2015-4-4 23:44
老师的是升序
作者:
lingda21
时间:
2015-4-5 11:03
额 模糊了
作者:
Angelsmile
时间:
2015-4-5 19:39
3楼正解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2