数组中有N个值,其中一个是最小值。如何最有效地找到最小值?
原文由 Muhammad Akhtar 发布,翻译遵循 CC BY-SA 4.0 许可协议
数组中有N个值,其中一个是最小值。如何最有效地找到最小值?
原文由 Muhammad Akhtar 发布,翻译遵循 CC BY-SA 4.0 许可协议
#include <iostream>
using namespace std;
int main() {
int n = 5;
int arr[n] = {12,4,15,6,2};
int min = arr[0];
for (int i=1;i<n;i++){
if (min>arr[i]){
min = arr[i];
}
}
cout << min;
return 0;
}
原文由 Harshit Dalal 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.3k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答512 阅读✓ 已解决
如果它们是未排序的,你不能做很多事情,只能查看每一个,这是 O(N),当你完成后你会知道最小值。
伪代码:
Ben 提醒我的一个更好的方法是使用第一个元素初始化 small:
以上内容作为 std::min_element 包装在 算法 头中。
如果您可以在添加项目时保持数组排序,那么找到它将是 O(1),因为您可以将最小的放在前面。
这和数组一样好。