A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 龚建锋 初级黑马   /  2012-7-25 23:47  /  2014 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class ArraysBianLi {

public static void main(String[] args) {

  int[] arr = { 1, 2, 3, 4, 53, 45, 78, 12 };

  System.out.print("正的数组"+"{");

  for (int i = 0; i < arr.length - 1; i++) {

   System.out.print(arr[i] + ",");
  }

  System.out.print(arr[arr.length - 1] + "}");
  
}

}
/*
上面是一个遍历并输出数组每个元素的小程序(运行结果如图1),
能否实现数组倒序输出,如{12,78,45,53,4,3,2,1}
*/

图1.jpg (18.29 KB, 下载次数: 158)

顺序输出数组

顺序输出数组

8 个回复

倒序浏览
//倒序很简单,遍历数组下标从最后一个开始就可以,代码如下
for (int i = arr.length - 1; i >= 0; i--) {
   System.out.print(arr + ",");
}
回复 使用道具 举报

  1. public class Test4 {
  2. public static void sort(int[] arr, boolean up) {
  3.   for (int i = 0; i < arr.length - 1; i++) {
  4.    for (int j = i + 1; j < arr.length; j++) {
  5.     if (up ? arr[j] < arr[i] : arr[j] > arr[i]) {
  6.      int temp = arr[i];
  7.      arr[i] = arr[j];
  8.      arr[j] = temp;
  9.     }
  10.    }
  11.   }
  12. }
  13. public static void main(String[] args) {
  14.   int[] arr = { 12, 78, 45, 53, 4, 3, 2, 1 };
  15.   sort(arr, true);
  16.   System.out.println("升序排列:");
  17.   for (int i : arr) {
  18.    System.out.print(i + "\t");
  19.   }
  20.   sort(arr, false);
  21.   System.out.println("\n降序排列:");
  22.   for (int i : arr) {
  23.    System.out.print(i + "\t");
  24.   }
  25. }
  26. }
复制代码
以上是插入排序,升序降序怎么排都行
希望对你有所帮助....
回复 使用道具 举报
楼主:解决这个倒序得先有思路,下面我将我得思路和代码奉供你参考,希望能帮你解决问题!
首先思路:
1,反转其实就是头尾角标的元素进行位置的置换。
2,然后让头角标自增,尾角标自减,在继续位置转换。
3,依次类推,知道头角标和尾角标相等时大于就结束。
代码如下:
回复 使用道具 举报
public class Test2 {
        public static void main(String[] args) {
                int[] a={1,4,5,2,3,8};
                for(int i=a.length-1;i>=0;i--){  倒序数组只需要在遍历时把条件反过来就可以。
                                                           从数组的最大元素开始遍历,每次减1,直到数组的第一个元素

                        System.out.print(a+",");
                }
        }
}
回复 使用道具 举报
倒序结果

aa.jpg (9.71 KB, 下载次数: 196)

aa.jpg
回复 使用道具 举报
本帖最后由 郑正华 于 2012-7-26 11:28 编辑

楼主,小弟给您提供一个选择排序的代码吧~
public class ArraysBianLi {
        public static void main(String[] args) {
                   int[] arr = { 12, 78, 45, 53, 4, 3 ,2 , 1};
--------------------------------------------------------------------------------            
                   for (int i = 0; i < arr.length - 1; i++) {
                                for (int j = i + 1; j < arr.length; j++) {
                                        if (arr < arr[j]) {
                                                int temp = arr;                               ←您只需添加这里面的代码即可~祝您学习愉快!
                                                arr = arr[j];
                                                arr[j] = temp;
                                         }
                                }
                    }
----------------------------------------------------------------------------------
                    System.out.print("正的数组" + "{");
                    for (int i = 0; i < arr.length - 1; i++) {
                              System.out.print(arr + ",");
                    }
                  System.out.print(arr[arr.length - 1] + "}");
        }
}
回复 使用道具 举报
这个简单呀,你打印的就是将数组有前往后遍历一边,

如果你想打印出你说的那样就需要讲数组由最后一个角标向前打印就行了:



讲遍历数组的for循环改为for(int i=a.length-1;i>=0;i--)就行了。
回复 使用道具 举报
public class ArraysBianLi {

public static void main(String[] args) {

  int[] arr = { 1, 2, 3, 4, 53, 45, 78, 12 };

  System.out.print("正的数组"+"{");

  for (int i = 0; i < arr.length - 1; i++) { //把for循环的条件换一下,从数组的最高位开始输出for(int i = arr.legth-1 ; i >0 ; i--)
   System.out.print(arr + ",");
  }

  System.out.print(arr[arr.length - 1] + "}");
  
}

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马