如何将一个数组的值按逆序重新存放于原数组中,并输出。例如:原来顺序为3,6,5,4,9改为9,4?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将一个数组的值按逆序重新存放于原数组中,并输出。例如:原来顺序为3,6,5,4,9改为9,4?相关的知识,希望对你有一定的参考价值。
参考技术A 简单,对折交换。比如数组a为下面的序列,数组长度为n=10:
1,2,3,4,5,6,7,8,9,10
写一个循环,i从0开始折半遍历到(n/2-1),此处为10/2-1=4,也就是i 0,4,然后交换a[i]和a[n-i-1].
过程如下,其中↹表示交换:
i=0,a[0] ↹ a[9]
i=1,a[1] ↹ a[8]
i=2,a[2] ↹ a[7]
i=3,a[3] ↹ a[6]
i=4,a[4] ↹ a[5]
如果数组元素个数为奇数,则n/2会丢弃小数,因此中间元素不会交换,所以不需要另外处理。这是最快的逆序算法。
将一个数组中的值按逆序重新存放。例如8,6,5,4,1要求改为1,4,5,6,8.
不能用输入输出方法!要求用循环+数组的方法。
参考技术A LENGTH = ARRAY1.LENGTH;FOR(INT I=0;I<LENGTH;I++)
ARRAY2[i] = array1[LENGTH-i-1];
参考技术B 如果允许在循环中使用中间变量,假定数组为int型数组,使用java语言描述如下:
int [] arr = 1, 2, 3, 4, 5, 6, 7, 8, 9;//数组
int temp = 0; //中间变量
for(int i=0; i<arr.length/2; i++)
temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
然后你试试把他们显示出来看看是不是逆序的了。
-----------------------
若不使用中间变量亦可:
for(int i=0; i<arr.length/2; i++)
arr[i] = arr[i] + arr[arr.length-1-i] - (arr[arr.length-1-i]=arr[i]);
本回答被提问者采纳
以上是关于如何将一个数组的值按逆序重新存放于原数组中,并输出。例如:原来顺序为3,6,5,4,9改为9,4?的主要内容,如果未能解决你的问题,请参考以下文章
将一个数组中的值按逆序重新存放。例如8,6,5,4,1要求改为1,4,5,6,8.
将一个数组中的值按逆序重新存放:建立Map()函数实现N个整数按相反顺序存放,函数的形参是数组