数组倒排 |
您所在的位置:网站首页 › 数组倒序c语言 › 数组倒排 |
前几天碰到一个面试题,具体需求是这样的,给出一个数组int[] array = new int[]{1,3,5,8,10,4,7,6};要求指定索引起始位置和结束位置,把索引范围内的进行倒序排序,比如:索引为1和4,那么要求输出,1,10,8,5,3,4,7,6,不可以使用java已有的函数,那么只能是遍历了。具体代码如下: public class ArraySort { public static void main(String[] args) { int[] array = new int[8]; array[0] = 1; array[1] = 3; array[2] = 5; array[3] = 8; array[4] = 10; array[5] = 4; array[6] = 7; array[7] = 6; int begin = 1; int end = 4; reverseByIndex(array,begin,end); } public static void reverseByIndex(int[] array,int begin,int end){ if (end >= array.length || begin > end) { throw new IllegalArgumentException(); } int[] res = new int[array.length]; int[] reverseArray = new int[end-begin+1]; for (int i = 0; i < reverseArray.length; i++) { reverseArray[i] = array[end-i]; } for (int i = 0; i < array.length;i++) { if (i < begin) { res[i] = array[i]; } else if(i < end){ for (int j = 0; j < reverseArray.length; j++) { res[i] = reverseArray[j]; i++; } i = end; }else if(i>end){ res[i] = array[i]; } } for (int i = 0; i < res.length; i++) { System.out.print(res[i]+"\t"); } } }上述代码的执行结果为 1,10,8,5,3,4,7,6。so,It's right.
如果有同学有更好的办法,请@我或者直接上代码即可,同时也谢谢大家的指正。^_^
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |