冒泡排序的问题

qq_33608244 2016-07-06 01:09:50


public static void main(String[] args) {
int[] in = new int[] { 8, 6, 3, 4, 2 };

for (int i = 0; i < in.length - 1; i++) {
for (int j = 0; j < in.length - 1 - i; j++) {
int temp;
if (in[j] > in[j + 1]) {
temp = in[j];
in[j] = in[i + 1];
in[j + 1] = temp;
}

}

}
System.out.println("遍历数组");
for (int c = 0; c < in.length; c++) {
System.out.print(in[c]);
}

}





大家看下我这段代码有问题吗。。使用冒泡排序
但是最后遍历的的结果为 68888
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_08_06_02 2016-07-06
  • 打赏
  • 举报
回复
Bear19940105 2016-07-06
  • 打赏
  • 举报
回复
你这个,有点像选择排序了!冒泡排序是相邻两个数进行比较,选择排序是其中一个数和其他所有数进行比较交换位置! //冒泡排序 int[] arrA={89,45,65,43,35,95,78,65}; for(int i=0;i<arrA.length-1;i++){ for(int j=0;j<arrA.length-1;j++){ if(arrA[j]>arrA[j+1]){ int t=arrA[j]; arrA[j]=arrA[j+1]; arrA[j+1]=t; } } } for(int i=0;i<arrA.length;i++){ System.out.println(arrA[i]); } } //选择排序 for(int i=0;i<arrA.length-1;i++){ for(int j=i+1;j<arrA.length-1;j++){ if(arrA[i]>arrA[j]){ int t=arrA[j]; arrA[j]=arrA[i]; arrA[i]=t; } } }
gamedev˚ 2016-07-06
  • 打赏
  • 举报
回复
楼主可以看下,关于三大排序的。 http://blog.csdn.net/coder__cs/article/details/51814565
N_P_F 2016-07-06
  • 打赏
  • 举报
回复


 int[] in = new int[] { 8, 6, 3, 4, 2 };
        for (int i = 0; i < in.length; i++) {
            int temp = 0;
            for (int j = i + 1; j < in.length; j++) {
                if (in[i] > in[j]) {
                    temp = in[i];
                    in[i] = in[j];
                    in[j] = temp;
                }
            }
        }
        for (int c = 0; c < in.length; c++) {
            System.out.print(in[c]);
        }
不写代码的钦 2016-07-06
  • 打赏
  • 举报
回复
第9行i改成j
BUG胡汉三 2016-07-06
  • 打赏
  • 举报
回复
temp = in[j]; in[j] = in[i + 1]; in[j + 1] = temp; 里面的i换成j:in[j] = in[j + 1];
cl13142006 2016-07-06
  • 打赏
  • 举报
回复
in[j] = in[i + 1]; 这个赋值有问题,应该是取变量j这样才能取准数组的值, in[j] = in[j + 1];

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧