对于输入的任意n个整数输出其中的最大和最小元素,用C/C++语言描述该算法,并给出算法的时间复杂度。
时间: 2024-09-07 14:03:34 浏览: 97
对于这个问题,我们可以通过遍历所有输入的整数,同时记录遇到的最大值和最小值来解决。下面是一个用C语言描述的算法示例:
```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] < *min) {
*min = arr[i];
}
// 更新最大值
if (arr[i] > *max) {
*max = arr[i];
}
}
}
int main() {
int arr[] = {3, 5, 1, 8, 4, 7}; // 示例数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组中元素的数量
int min, max;
findMinMax(arr, n, &min, &max); // 调用函数获取最小值和最大值
printf("最小元素是: %d\n", min);
printf("最大元素是: %d\n", max);
return 0;
}
```
算法的时间复杂度分析:
该算法只进行了一次数组遍历,遍历的次数与数组中元素的数量n成正比,因此算法的时间复杂度为O(n),其中n是数组中元素的个数。
阅读全文