设计一个最优算法来查找n个元素数组中的最大值和最小值
转载注明: http://blog.csdn.net/shuiziliu1025/article/details/50958190
把数组两两一对分组,如果数组元素个数为奇数,就最后单独分一个,然后分别对每一组的两个数比较,把小的放在左边,大的放在右边,这样遍历下来,总共比较的次数是 N/2 次;
在前面分组的基础上,那么可以得到结论,最小值一定在每一组的左边部分找,最大值一定在数组的右边部分找,最大值和最小值的查找分别需要比较N/2 次和N/2 次;这样就可以找到最大值和最小值了,比较的次数为N/2 * 3 = (3N)/2 次
如图所示:
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 打开 Outlook 禁用附件的方法
- 下一篇: C指针实现找出一个数组中的最大值和次大值