黑马程序员技术交流社区

标题: 练习二十:数组逆序输出 [打印本页]

作者: maxwell247    时间: 2015-9-27 09:16
标题: 练习二十:数组逆序输出
从网上找到一份编程练习题,我决定将里面的题目全都做一遍。

/*
        题目:将一个数组逆序输出。
*/
/*
        分析:
        不晓得为啥会有这样的题目。
        思路一:直接用循环变量控制逆序就好了。但是这应该不是题目的本意。(所以我不这样写!)
        思路二:将数组中元素首尾依次对换。

        ----> 以下是思路二的实现
*/

import java.util.Random;

class NiXuShuChuShuZu {
        private static final int ARRAY_SIZE=11;

        public static void main(String[] args) {
                Random random=new Random();
                int[] arr=new int[ARRAY_SIZE];
                for (int i=0; i<arr.length; i++){
                        arr=random.nextInt(100)+1;
                }       
                System.out.println("--------逆序输出前--------");
                printArray(arr);
                niXu(arr);
                System.out.println("\n--------逆序输出后--------");
                printArray(arr);
                System.out.println();
        }

        public static void printArray(int[] arr){
                for (int element:arr){
                        System.out.print(element+" ");
                }
        }

        public static void niXu(int[] arr){
                int half_length=arr.length/2;
                for (int i=0; i<half_length; i++){
                        swap(arr,i,arr.length-1-i);
                }
        }

        private static void swap(int[] arr,int x,int y){
                int temp=arr[x];
                arr[x]=arr[y];
                arr[y]=temp;
        }
}

/*
        输出结果
--------逆序输出前--------
84 79 34 44 25 1 62 82 52 4 44
--------逆序输出后--------
44 4 52 82 62 1 25 44 34 79 84
*/


作者: 残影    时间: 2015-9-27 09:21
为什么要弄1-100以内的随机数啊。。。。。
作者: 邬jerry    时间: 2015-9-27 09:28
for(int start=0,end=(arr.length-1);start<=end;start++,end--){
       int temp = arr[start];
       arr[start] = arr[end];
       arr[end] = temp;
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2