黑马程序员技术交流社区
标题:
有关数组排序的问题
[打印本页]
作者:
燕国庆
时间:
2012-10-8 16:51
标题:
有关数组排序的问题
本帖最后由 燕国庆 于 2012-10-23 17:42 编辑
class SortDemo
{
public static void main(String[] args)
{
int[] arr={3,2,5,9,6,7,11,10,33,23};
bianLi(arr);
//maoSelect(arr);
selectSort(arr);
bianLi(arr);
}
public static void maoSelect(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
//在这里用到了以前毕老师说过的大圈套小圈的原理及嵌套循环,但是有点弄不清楚外循环河内循环的次数,
{
for(int y=0;y<arr.length-x-1;y++)
//在这里不知道有没有涉及到老师说的“尖朝上的问题”,若有涉及到该问题不知道怎样理解?
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
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];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
public static void bianLi(int[] arr)
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x<arr.length-1)
//此条
语句若换成: if(x!=length-1)与原来的语句有什么区别没?
{
System.out.print(arr[x]+", ");
}
else
System.out.println(arr[arr.length-1]+"]");
}
}
}
这些地方总是感觉有点混沌,理解的不是那么清楚,希望有人能帮忙解释一下,谢谢!
作者:
王震阳老师
时间:
2012-10-8 18:34
我帮你看一下啊,
作者:
李兆宁
时间:
2012-10-8 19:08
class SortDemo
{
public static void main(String[] args)
{
int[] arr={3,2,5,9,6,7,11,10,33,23};
bianLi(arr);
//maoSelect(arr);
selectSort(arr);
bianLi(arr);
}
public static void maoSelect(int[] arr)
{
for(int x=0;x<arr.length-1;x++) //在这里用到了以前毕老师说过的大圈套小圈的原理及嵌套循环,但是有点弄不清楚外循环河内循环的次数,
{
for(int y=0;y<arr.length-x-1;y++) //在这里不知道有没有涉及到老师说的“尖朝上的问题”,若有涉及到该问题不知道怎样理解?
//循环次数,就是外层没循环一次内层就循环一轮。如果内层次数不变,就是打印出矩形,总次数就是内外层只积。
//在这里,外层没循环一次,内层循环次数就减少。
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
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];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
public static void bianLi(int[] arr)
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x<arr.length-1) //此条 语句若换成: if(x!=length-1)
//结果一样,x是自加的,知道加到了length-1就停了,也就是说,只要x小于他就一直运行,是一个意思
{
System.out.print(arr[x]+", ");
}
else
System.out.println(arr[arr.length-1]+"]");
}
}
}
作者:
王震阳老师
时间:
2012-10-8 19:45
自己使用系统自带的画图工具花了半天花的图,分析了冒泡排序和选择排序的实质区别,
通过该图楼主应该可以很清晰的明白程序的内部原理了。
冒泡排序与选择排序的实质区别.JPG
(85.68 KB, 下载次数: 26)
下载附件
2012-10-8 19:44 上传
冒泡和选择排序的实质区别在哪里
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2