牛骨文教育服务平台(让学习变的简单)
博文笔记

找出最大值和最小值的时间复杂度比较小的一种方法

创建时间:2015-04-16 投稿人: 浏览次数:3045

       一般认为,对于给定的n个数,只要独立地找出最小值和最大值,各用n-1次比较,最多2(n-1)次就可以找出最大值和最小值。

       实际上,至多3(n/2)次比较就足以同时找到最大值和最小值,具体做法是:成对的处理元素,先将一对元素互相比较,然后将最小者与当前最小值比较,将较大者与当前最大值比较,因此每两个元素需要3次比较。这里要注意n的奇偶,当n是奇数,就将最小值和最大值都设置为第一个元素,然后成对的处理剩下的元素;如果n是偶数,就对前两个元素做一次比较,以决定最大值和最小值,然后成对地处理余下的元素。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。