public class Coo{
public static void main(String[] arge){
int[] a = {4,3,2,1};
for(int i = 0; i < a.length - 1; i ++){
for(int j = 0; j < a.length - 1 - i; j ++){
if(a[j] > a[j + 1]){
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for(int b : a){
System.out.print(b + "\t");
}

}
}
这段代码中的 定义的 i 和 j 分别代表什么  请高手帮忙解答 谢谢!

解决方案 »

  1.   

    for(int i = 0; i < a.length - 1; i ++)这句中的i代表的是循环的次数中当前第几次循环
    for(int j = 0; j < a.length - 1 - i; j ++)同上
    if(a[j] > a[j + 1])这句中的j有确切的值,表示数组小标
      

  2.   

    class ArraySortdemo
    {
    public static void main(String args[])
    {
    int arr[] = new int[args.length];
    for(int i=0;i<args.length;i++)
    {
    arr[i] = Integer.parseInt(args[i]);
    }
    sort(arr);
    for(int i=0;i<arr.length;i++)
    {
    System.out.print(arr[i]+" ");
    }
    }
    private static void sort(int[] a)
    {
    for(int i=0;i<a.length;i++)
    {
    for(int j=i+1;j<a.length;j++)
    {
    if(a[j]<a[i])
    {
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
    }
    if(a[j]==a[i])
    {
    a[j]=a[i];
    }
    }
    }
    }
    }
      

  3.   

    i是控制数组里面的元素 把它一个一个地拿出来跟其他后面的相连的元素比较
    j是比较的次数(因为每冒泡一次即i增加一次就排好一个数,所以循环条件是j-1-i);
      

  4.   

    楼主的例子貌似不是冒泡排序啊!而且偶没见过这种排序方式
    冒泡例子
    public void bubbleSort(Array arr) {
        int len = arr.length;
        int out;
        int in;
        for(out = len-1;out > 1;out--) {//循环由右端不断向左移动
            for(in = 0;in < out; in++) {//内部循环向右移动
                if(arr[in] > arr[in+1]) {
                     int temp = arr[in]; //数据交换
                     arr[in] = arr[in+1];
                     arr[in+1] = temp;
                }
            }
        }
    }
    你要先理解冒泡的意思,即一列数据,不断从未排序的列中选出最大的放到列末端,然后未排序的数据向左移一位(out--),在这里表现为out的右端为已排序数据,而out的左端为未排序数据。而这个in便是在out的左端,也就是未排序队伍中用来循环找最大(相对)数据的
    推荐一本书:Java数据结构和算法.[美] Robert Lafore著(里面讲的很详细)
      

  5.   

    楼主的这种方法可以的:
    是以大泡下沉至最后一个元素来看的。
    外层中的i是指一共要执行多少次内层的比较,这依照你的数组的大小而定。
    而内层中的j则是用于比较0到j(j=1...N-1)之间的元素,并将每次内循环中的最大值给弄到本次比较的范围的最后。
      

  6.   

    楼主看看这个,里面有很多中排序的算法http://blog.csdn.net/myjava_024/category/479505.aspx