本帖最后由 wzp630147841 于 2011-11-23 11:17:09 编辑

解决方案 »

  1.   

    for (int i = 0; i < array.length; ++i) {
    for (int j = 0; j < array.length - i - 1;  ++j) {
    // 升序排列
    if (array [j] > array [j + 1]) {
    temp = array [j];
    array [j] = array [j + 1];
    array [j + 1] = temp;
    }
    }
    }
      

  2.   


    // 升序排列  ----------错在这里
    if (array [j] > array [j + 1]) {
    temp = array [j];
    array [j] = array [j + 1];
    array [j + 1] = temp;
      

  3.   


    // 降序排列 ----------错在这里
    if (array [j] < array [j + 1]) {
    temp = array [j];
    array [j] = array [j + 1];
    array [j + 1] = temp;
      

  4.   


    public static void main(String[] args) {
    int array [] = {88, 52, 9, 100, 98, 65};
    // 冒泡排序
    System.out.println("************************升序排列**************************");
    for (int i = 0; i < array.length; ++i) {
    for (int j = 0; j < array.length - 1 - i; ++j) {
    // 升序排列
    if (array [j] > array [j + 1]) {
    int temp = array [j];//循环里面的条件应该是判断J,而不是I,降序也是如此
    array [j] = array [j + 1];
    array [j + 1] = temp;
    }
    }
    }
    for (int i = 0; i < array.length; ++i) {
    System.out.print(array[i] + " ");
    }
    System.out.println();
    System.out.println();
    System.out.println("************************降序排列**************************");
    for (int i = 0; i < array.length; i ++) {
    for (int j = 0; j < array.length - 1 - i; j ++) {
    // 降序排列
    if (array [j] < array [j + 1]) {
    int temp = array [j];
    array [j] = array [j + 1];
    array [j + 1] = temp;
    }
    }
    }
    // 排序后输出数组
    for (int i = 0; i < array.length; i ++) {
    System.out.print(array[i] + " ");
    }
    }
      

  5.   


    public static void main(String[] args) {
            int array [] = {88, 52, 9, 100, 98, 65};
            // 冒泡排序
            System.out.println("************************升序排列**************************");
            for (int i = 0; i < array.length; ++i) {
                for (int j = 0; j < array.length - 1 - i; ++j) {
                // 升序排列
                    if (array [j] > array [j + 1]) {
                        int temp = array [j];
                        array [j] = array [j + 1];
                        array [j + 1] = temp;
                    }
                }
            }
            for (int i = 0; i < array.length; ++i) {
                System.out.print(array[i] + " ");
            }
            System.out.println();
            System.out.println();
            System.out.println("************************降序排列**************************");
            for (int i = 0; i < array.length; i ++) {
                for (int j = 0; j < array.length - 1 - i; j ++) {
                // 降序排列
                    if (array [j] < array [j + 1]) {
                    int temp = array [j];
                    array [j] = array [j + 1];
                    array [j + 1] = temp;
                    }
                }
            }
            // 排序后输出数组
            for (int i = 0; i < array.length; i ++) {
            System.out.print(array[i] + " ");
            }
        }
      

  6.   

    其实升序和降序在代码上的唯一区别就是在第二层循环里面的判断方向不一样,其他都是一样的。
    伪代码帮助记忆:        for (int i = 0; i < 数组长度; i ++) {
                for (int j = 0; j < 数组长度 - 1 - i; j ++) {
                   if (array [j] array [j + 1]) {//把小的往后面移动 -> 降序
                   //if (array [j] > array [j + 1]) {//把大的往后面移动 -> 升序
                    交换元素j和j+1
                    }
                }
            }