对于顺序数组,以下三种操作输出结果相同,但实现原理不同
首先,倒序排序!=逆序输出
以下为逆序输出,并未对arr0中的元素顺序做改变
int[] arr = {1,2,3,4};
for(int i = arr.length-1;i >=0;i--){
System.out.print(arr[i]+" ");
}
倒序排序1:将对称下标的元素值两两交换
int[] arr = {1,2,3,4,5};
int midIndex = arr.length/2;//中间元素的下标
int temp = 0;
System.out.println("原数组:"+Arrays.toString(arr));
for(int i = 0;i < midIndex;i++){
temp = arr[i];
arr[i] = arr[arr.length-i-1];//两对称元素的下标和为arr.length-1
arr[arr.length-i-1] = temp;
}
System.out.println("倒序排序后的数组:"+Arrays.toString(arr));
倒序排序2:创建一个新数组,并用原数组中的元素逆序为其元素赋值
int[] arr = {1,2,3,4,5};
int[] arr1 = new int[arr.length];//定义一个长度相同的数组
for(int i = 0;i < arr1.length;i++){
arr1[i] = arr[arr.length-i-1];
//将arr中的arr.length-1 ~ 0赋值给arr1中的0 ~ arr1.length
}
System.out.println("倒序排序结果:"+Arrays.toString(arr1));