黑马程序员技术交流社区
标题:
大家帮忙看下吧......哪里错了呢?
[打印本页]
作者:
李振乐
时间:
2014-11-11 17:07
标题:
大家帮忙看下吧......哪里错了呢?
package Every;
public class LianXi {
public static void main(String[] args) {
int[] arr = new int[]{22,33,2,344,4,555,333,21,5,8};
for(int x=0;x<arr.length-1;x++)
{
for(int y=x;y<arr.length-1-x;y++)
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
System.out.print("[");
for(int x = 0;x<arr.length;x++)
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.print(arr[x]+"]");;
}
}
运行结果:::
[22,2,4,21,5,8,33,333,344,555]
作者:
冥夜
时间:
2014-11-11 17:39
本帖最后由 冥夜 于 2014-11-11 17:40 编辑
题目要求都没说要我们怎么帮你。。你是想对数组排序?
作者:
黑马-幻灭
时间:
2014-11-11 20:40
内循环 y的初值应该是0..................
作者:
javaAndroid
时间:
2014-11-11 23:16
for (int y = 0; y < arr.length - 1 - x; y++)
每排一趟,都要从第一个元素开始
作者:
爱学习的小明
时间:
2014-11-12 13:16
冒泡排序,如果内循环里的判断语句是if(arr[y]>arr[y+1])调换两元素位置,那么内循环的y的起始数从0开始,y<arr.length-1-x;
如果内循环里判断语句是if(arr[y]<arr[y+1]),那么内循环y的起始数从x开始,到x<arr.length-1,你把这两种情况混淆了
作者:
DamonZh
时间:
2014-11-12 14:29
内部的for从0开始 每比较一遍 从头开始再比较的
作者:
dong53821713
时间:
2014-11-12 16:34
for(y=0;y<arr.length-1-x;y++)
作者:
阿穆隆
时间:
2014-11-12 17:10
昨天刚学到这个。。。
感觉2L说的对的。因为y初始值为x的话外循环第二圈的时候y就变成1,这样的话内循环中的0位置角标就不能进行运算了。
作者:
高昌德
时间:
2014-11-12 17:18
内循环应该从0开始
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2