第二层的循环条件 我记得是y<xx.length-1-i
哎这东西当初都背过了~ 你网上搜一下仔细对比一下

解决方案 »

  1.   

    for(int y = x;y<args.length-1;y++)
    {
    if(args[y]>args[y+1])
    我现在就不明白为什么我把for(int y=x)改成for(int y =0,)就能通过?X起始不也是从0开始的吗》有区别吗?
      

  2.   

    第二层的循环条件 我记得是y<xx.length-1-i
    哎这东西当初都背过了~ 你网上搜一下仔细对比一下
    按照你说的我改了可是结果还是不对啊
      

  3.   

    package com.paixu;public class Page_maopao {
    public static void paixu(int[] args) {
    for (int x = args.length-1; x >0; x--) {
    for (int y = 0; y <x; y++) {
    if (args[y] >args[y + 1]) {
    int temp = args[y];
    args[y] = args[y + 1];
    args[y + 1] = temp;
    }
    }
    }
    } public static void printy(int[] args) {
    for (int x = 0; x < args.length; x++) {
    System.out.print(args[x] + ";");
    }
    } public static void main(String[] args) {
    int[] P = { 8, 3, 4, 5, 18, 3 };
    paixu(P);
    printy(P);
    }
    }
      

  4.   

    你这肯定是不对的。你只有跑第一圈内循环y的值是0,后面x++之后y的值也会变大~ 所以y必须初始化为0。
      

  5.   

    你这肯定是不对的。你只有跑第一圈内循环y的值是0,后面x++之后y的值也会变大~ 所以y必须初始化为0。
    我明白你的意思。。可是这道题y=0时内循环跑完后第一个数已经是最小了。。我后面直接不考虑他了从y=1开始比直接1和2比,0的位置上的数已经是最小了我完全不考虑了。。我现在就纳闷在为什么是3;4;3;按照道理不是3;3;4;吗?
      

  6.   

    你这是升序,第一次循环结束后,最大的数跑到了最后面;然后又开始从第一个开始比较,所以y的初始值一直是0;即: for (int y = 0; y < args.length-1-x; y++)
      

  7.   

    应该这么写:
    for(int i=0;i<aryLength-1;i++){

    for(int j=0;j<aryLength-1-i;j++){
    if(array[j]<array[j+1]){
    int temp=array[j];
    array[j]=array[j+1];
    array[j+1]=temp;

    }
    }

    }
      

  8.   

    你将你这句代码:
    for(int x=0;x<args.length-1;x++)
     {
     for(int y = x;y<args.length-1;y++)
     {
    改为
    for(int x=0;x<args.length-1;x++)
     {
     for(int y = 0;y<args.length-1-x;y++)
     {
    即可,冒泡排序的基本思想大概是:以x为趟数,用y来控制每趟要比较的次数;
    比如:
    当args.length=5时,第一趟x=0,则内循环中y从0到3,从而比较4次;同理,第2趟,x=1,则内循环中y从0到2,从而比较3次;
    以此类推即可。
      

  9.   

    你这肯定不行  逻辑混乱了你这是升序排列 ,第一次x=0时,内层循环执行完毕,找到的是最大数并排列到了数组末尾
    第二次x=1是  内层循环却要从数组下标为1的后面的数开始比较大小,而不是从从数组的开始下标为0开始比较,显然不合逻辑
    最终造成了排序不正确,正确的内层循环应该是 for(int y = 0;y<args.length-1-x;y++) 
      

  10.   

    你的第二层循环出问题了for (int y = 0; y < args.length-x-1; y++) 
    如果你把y初始为x,那后面就不是y的值返回不了第一个