将一个数组中的值按逆序重新存放8、6、5、4、1、2改为2、1、4、5、6、8
时间: 2023-10-27 11:07:52 浏览: 105
可以使用双指针或者递归的方式来实现数组的逆序,具体如下:
双指针法:
1. 新建两个指针,一个指向数组的第一个元素,一个指向数组的最后一个元素。
2. 当第一个指针小于等于第二个指针时,交换它们所指的元素,并且将第一个指针向后移动一位,第二个指针向前移动一位。
3. 重复上述步骤,直到第一个指针大于等于第二个指针时,数组即为逆序存放。
代码实现:
void reverse(int arr[], int n){
int left = 0, right = n - 1;
while(left <= right){
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
递归法:
1. 如果数组的长度小于等于1,直接返回。
2. 否则,交换数组的第一个元素和最后一个元素。
3. 然后对子数组 arr[1...n-2] 进行递归操作(即将子数组中的元素依次逆序排列)。
代码实现:
void reverse(int arr[], int start, int end){
if(start >= end){
return;
}
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverse(arr, start+1, end-1);
}
调用方法:
int main(){
int arr[] = {8, 6, 5, 4, 1, 2};
int n = sizeof(arr) / sizeof(arr[0]);
reverse(arr, 0, n-1);
for(int i=0; i<n; i++){
cout << arr[i] << " ";
}
return 0;
}
运行结果:2 1 4 5 6 8
阅读全文
相关推荐


















