将一个数组逆序输出。

简介: 将一个数组逆序输出。

C语言实现


方法一:使用栈


C语言标准库中没有直接支持栈的容器,但我们可以使用数组来模拟栈的行为。这里只是逻辑上的展示,实际上不真正使用栈容器。


c复制代码
 #include <stdio.h>  
 
   
 
 void reverseArray(int arr[], int size) {  
 
     // 由于C语言不直接支持栈,这里只是展示思路  
 
     // 真正的实现可能需要额外的数组来模拟栈  
 
     // 这里直接采用另一种方法  
 
 }  
 
   
 
 // 不使用栈的直接方法  
 
 void reverseArrayDirect(int arr[], int size) {  
 
     int temp;  
 
     for (int i = 0; i < size / 2; i++) {  
 
         temp = arr[i];  
 
         arr[i] = arr[size - 1 - i];  
 
         arr[size - 1 - i] = temp;  
 
     }  
 
 }  
 
   
 
 int main() {  
 
     int arr[] = {1, 2, 3, 4, 5};  
 
     int size = sizeof(arr) / sizeof(arr[0]);  
 
   
 
     // 假设使用直接方法  
 
     reverseArrayDirect(arr, size);  
 
   
 
     for (int i = 0; i < size; i++) {  
 
         printf("%d ", arr[i]);  
 
     }  
 
   
 
     return 0;  
 
 }


注意:C语言中真正使用栈的逆序会涉及到额外的数据结构实现或使用库函数(如果有的话),这里直接给出了不使用栈的直观方法。


方法二:直接交换


已在上述代码中实现,即reverseArrayDirect函数。


Python实现


方法一:使用列表切片


Python的列表切片功能可以直接实现数组的逆序。


python复制代码
 def reverseArraySlice(arr):  
 
     return arr[::-1]  
 
   
 
 arr = [1, 2, 3, 4, 5]  
 
 reversed_arr = reverseArraySlice(arr)  
 
 print(reversed_arr)


注意,这种方法返回的是原数组的一个逆序副本,不会修改原数组。


方法二:使用reversed()函数和列表推导


这也是一种常见的实现方式,与切片类似,它也不会修改原数组。


python复制代码
 def reverseArrayReversed(arr):  
 
     return [x for x in reversed(arr)]  
 
   
 
 arr = [1, 2, 3, 4, 5]  
 
 reversed_arr = reverseArrayReversed(arr)  
 
 print(reversed_arr)

image.png


方法三:直接交换


为了修改原数组,我们可以使用Python的循环来实现直接交换。


python复制代码
 def reverseArrayInPlace(arr):  
 
     for i in range(len(arr) // 2):  
 
         arr[i], arr[len(arr) - 1 - i] = arr[len(arr) - 1 - i], arr[i]  
 
   
 
 arr = [1, 2, 3, 4, 5]  
 
 reverseArrayInPlace(arr)  
 
 print(arr)



这种方法会直接在原数组上进行修改,不需要额外的空间(除了几个临时变量)。


image.png

目录
打赏
0
4
4
0
52
分享
相关文章
【C/PTA】数组进阶练习(一)
【C/PTA】数组进阶练习(一)
145 0
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
486 4
求一个3*3矩阵对角线元素之和
求一个3*3矩阵对角线元素之和
163 3
|
10月前
|
Java运算符
Java运算符
90 12
数组逆序输出
数组逆序输出。
59 13
算法题:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 4 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。
算法题:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第 4 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。
232 4
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
381 2
|
10月前
|
Java 抽象类详解
在 Java 中,抽象类是一种特殊类,用于提供基础定义并派生具体子类,支持代码复用。它包含抽象方法(无实现)和具体方法(有实现),不能被实例化,需用 `abstract` 关键字定义。子类必须实现所有抽象方法,除非子类也是抽象类。抽象类可用于定义模板或框架,确保子类实现特定方法。通过示例展示了如何定义抽象类 `Animal` 及其子类 `Dog` 和 `Cat`,并在主类中调用相关方法。使用抽象类可以提高代码复用性和设计质量,但也可能增加维护难度和性能开销。
312 8
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问