编写一个算法实现找出n个整数类型数据的顺序表中的最大数和最小数,然后将最大数放到最小数后面。如:原顺序表为:12,6,4,20,14,7,9,36,10,15,调整后顺序表为:12,6,4,36,20
时间: 2023-04-30 20:04:29 浏览: 157
此题要求编写一个算法来找到一个整数类型数据的顺序表中的最大值和最小值,并将最大值放在最小值后面。比如,原顺序表为:12,6,4,20,14,7,9,36,10,15,调整后的顺序表为:12,6,4,36,20,14,7,9,15,10。
相关问题
编写一个算法实现n个整数类型数据的顺序表的逆置
实现顺序表逆置的算法如下:
1. 定义顺序表和临时变量
2. 从顺序表的第一个元素开始,将该元素与最后一个元素交换,并将临时变量设置为最后一个元素
3. 继续交换第二个元素和倒数第二个元素,直到顺序表的第n/2个元素为止
4. 顺序表逆置完成
代码实现如下:
```python
def reverse_list(arr):
n = len(arr)
for i in range(n//2):
arr[i], arr[n-i-1] = arr[n-i-1], arr[i]
return arr
```
需要注意的是,这个算法的时间复杂度为O(n/2),空间复杂度为O(1).
用c语言编写一个算法实现n个整数类型数据的顺序表的逆置
以下是一个用C语言编写的算法实现顺序表逆置的方法:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef int ElemType;
typedef struct {
ElemType List[MAX_SIZE];
int length;
} SqList;
void Swap(ElemType* a, ElemType* b) {
ElemType temp = *a;
*a = *b;
*b = temp;
}
void Reverse(SqList* L) {
for (int i = 0; i < L->length/2; i++) {
Swap(&L->List[i], &L->List[L->length - 1 - i]);
}
}
int main() {
SqList L;
int n;
printf("请输入顺序表的长度: ");
scanf("%d", &L.length);
printf("请输入顺序表的元素: ");
for (int i = 0; i < L.length; i++) {
scanf("%d", &L.List[i]);
}
Reverse(&L);
printf("逆置后的顺序表: ");
for (int i = 0; i < L.length; i++) {
printf("%d ", L.List[i]);
}
return 0;
}
```