数组中有N个值,其中最小的一个。如何最有效地找到最小值?
如果它们没有排序,你就不能做太多事情,只能查看每一个,这是 O(N),完成后你就会知道最小值。
伪代码:
small = <biggest value> // such as std::numerical_limits<int>::max
for each element in array:
if (element < small)
small = element
更好的方式提醒Ben对我来说就是用第一个元素初始化小:
small = element[0]
for each element in array, starting from 1 (not 0):
if (element < small)
small = element
上面的内容被包裹在算法标头为std::min_element.
如果您可以在添加项目时保持数组排序,那么查找它的复杂度将是 O(1),因为您可以将最小的放在前面。
这与数组一样好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)