数据结构与算法利用 C 语言编写一个程序,用户输入 10 个数字,找出其中最大的 2 个数字,并分析该算法的时间复杂度
时间: 2024-10-08 17:27:20 浏览: 17
数据结构与算法在C语言中通常会涉及数组、栈或队列等数据结构来实现特定功能。下面是一个简单的示例程序,用于找到用户输入的10个数字中的最大两个数:
```c
#include <stdio.h>
// 定义一个函数,返回给定数组中的前两个最大值
void findTwoMax(int arr[], int n) {
if (n <= 1) {
printf("Invalid input! At least two numbers are needed.\n");
return;
}
int first = arr[0];
int second = arr[1];
for (int i = 2; i < n; i++) {
if (arr[i] > first) {
second = first;
first = arr[i];
} else if (arr[i] > second && arr[i] != first) {
second = arr[i];
}
}
printf("The two largest numbers are: %d and %d\n", first, second);
}
int main() {
int num[10];
printf("Enter 10 numbers: ");
for (int i = 0; i < 10; i++) {
scanf("%d", &num[i]);
}
findTwoMax(num, 10);
return 0;
}
```
在这个程序中,我们遍历整个数组一次,所以时间复杂度是O(n),其中n是数组长度。因为我们只比较每个元素最多两次,所以空间复杂度是O(1)。
阅读全文