数组倒排

您所在的位置:网站首页 数组倒序c语言 数组倒排

数组倒排

2023-07-27 01:32| 来源: 网络整理| 查看: 265

前几天碰到一个面试题,具体需求是这样的,给出一个数组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