用C语言编写,一直有长度为n的有序线性表,设计一个算法,使得该线性表中的数据元素按照逆序进行排列。
时间: 2024-09-22 16:06:35 浏览: 116
数据结构实验报告-线性表-线性表基本操作算法5分-实验内容及要求.docx
5星 · 资源好评率100%
在C语言中,可以使用双指针法来实现对一个已排序的线性表进行逆序排列。这里提供一种简单直接的思路:
```c
#include <stdio.h>
void reverse_sorted_array(int arr[], int n) {
// 初始化两个指针,一个指向数组开始,另一个指向结束
int start = 0;
int end = n - 1;
while (start < end) {
// 交换当前指针位置的数据
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针向中间靠拢
start++;
end--;
}
}
// 测试函数
int main() {
int array[] = {1, 2, 3, 4, 5};
int length = sizeof(array) / sizeof(array[0]);
printf("Original Array:\t");
for (int i = 0; i < length; i++) {
printf("%d ", array[i]);
}
reverse_sorted_array(array, length);
printf("\nReversed Array:\t");
for (int i = 0; i < length; i++) {
printf("%d ", array[i]);
}
return 0;
}
```
在这个程序中,`reverse_sorted_array` 函数接受一个整数数组和它的长度作为输入,通过不断地交换数组首尾元素直到两个指针相遇,实现了数组的逆序。
阅读全文