c语言编写对于输入的任意n个整数,输出其中的最大元素和最小元素,并给出这个算法的时间复杂度
时间: 2024-09-14 11:10:23 浏览: 58
算法实习:分治算法求n个数的数组中找出第二个最大元素
5星 · 资源好评率100%
在C语言中,为了找到一组输入的n个整数中的最大值和最小值,你可以使用线性扫描的方式。下面是一个简单的程序示例:
```c
#include <stdio.h>
void findMinMax(int arr[], int n, int *min, int *max) {
*min = arr[0]; // 初始化最小值为第一个元素
*max = arr[0]; // 初始化最大值为第一个元素
for (int i = 1; i < n; i++) {
if (arr[i] > *max) { // 如果当前元素大于已知的最大值
*max = arr[i];
}
else if (arr[i] < *min) { // 同理,如果当前元素小于已知的最小值
*min = arr[i];
}
}
}
int main() {
int n;
printf("请输入整数的数量: ");
scanf("%d", &n);
int arr[n], min, max;
printf("请输入%d个整数: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
findMinMax(arr, n, &min, &max);
printf("最小元素是: %d\n", min);
printf("最大元素是: %d\n", max);
return 0;
}
```
这个算法的时间复杂度是O(n),因为它只需要遍历一次数组。无论数组的大小如何,查找最大值和最小值所需的操作次数都是固定的。
阅读全文