黑马程序员技术交流社区
标题:
函数调用问题??
[打印本页]
作者:
haitianzhilian
时间:
2014-3-14 22:32
标题:
函数调用问题??
本帖最后由 haitianzhilian 于 2014-3-14 23:01 编辑
class Demo
{
public static void main(String[] args)
{
int[] arr={10,11,6,7,5,9,0};
System.out.print("数组排序前为:");
PrintArray(arr);
BubbleSort(arr);//调用已经定义好的冒泡排序函数
System.out.print("数组排序后为:");
PrintArray(arr);
}
//定义一个冒泡排序函数BubbleSort
public static void BubbleSort(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
for(int j=arr.length-1;j<i;j--)
if(arr[j]<arr[j-1])
{
int temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
//定义一个输出数组的函数
public static void PrintArray(int[] arr)
{
System.out.print("[");
for(int i=0;i<arr.length;i++)
{
if(i!=arr.length-1)
System.out.print(arr
+",");
else
System.out.println(arr
+"]");
}
}
}
捕获.PNG
(2.34 KB, 下载次数: 17)
下载附件
2014-3-14 22:32 上传
作者:
chen_x
时间:
2014-3-14 22:47
for(int i=0;i<arr.length-1;i++)
for(int j=arr.length-1;j<i;j--)
双层循环的内层循环的终止判断条件应该是j>i, 不是j<i,没有满足j<i条件的j值吧,循环体一次都没执行.
这个是从数组后面向前冒泡,每次循环后,数组前面都是有序的。
改成j>i, 运行结果就正常的,运行结果是:数组排序前为:[10,11,6,7,5,9,0]
数组排序后为:[0,5,6,7,9,10,11]
作者:
haitianzhilian
时间:
2014-3-14 23:12
chen_x 发表于 2014-3-14 22:47
for(int i=0;i
谢谢了,一下明白了,在机器上看那么久就是没看出来啊,真够晕的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2