9.1-1
采用锦标赛的形式,每两个元素一组比较,值小的元素获胜,进入下一次的两两比较,最小元素在 n−1n-1 次比较后得到。比较的结果形成一颗二叉树。对于次小的元素,一定是在和最小元素的比较中输掉的元素(因为次小元素只会比最小元素大),因此利用这一性质,从根(也就是最小元素)开始向叶结点搜索找出次小元素,一共比较 ⌈lgn⌉−1\lceil \lg n\rceil-1,总的比较次数就是n+⌈lgn⌉−2n+\lceil \lg n\rceil-2。
如下图,从根开始,次小元素值第一次赋值4,第二次变为3,最后一次就变为2。

9.1-2
我们两两成对的比较,在比较结果中,所有大的元素分成一组,小的分成另外一组,它们彼此不想交,每一组 n/2n/2 个元素,总共的比较次数 n/2+2(n/2−1)=3n/2−2n/2 + 2(n/2-1)=3n/2-2。这里假设的 n<script type="math/tex" id="MathJax-Element-15">n</script> 是偶数,若是奇数,需要单独比较最后一个元素是最大还是最小,因此向上取整成立。

CLRS 9.1最小值和最大值相关推荐

  1. C++:uniform_int_distribution、rand()和mt19937随机数、partial_sum、容器最小值和最大值、accumulate

    C++:uniform_int_distribution.rand()和mt19937随机数.partial_sum.容器最小值和最大值.accumulate 1.uniform_int_distri ...

  2. dart - 如何从Dart中的列表中找到最小值和最大值

    dart - 如何从Dart中的列表中找到最小值和最大值? 我已经尝试了以下代码段.但是它将引发有关类型转换的错误.因为列表具有整数和 double 值的组合.但是 **list.reduce(min ...

  3. 如何从Dart中的列表中找到最小值和最大值?

    dart - 如何从Dart中的列表中找到最小值和最大值? 我已经尝试了以下代码段.但是它将引发有关类型转换的错误.因为列表具有整数和 double 值的组合.但是 **list.reduce(min ...

  4. 关于选择排序的优化——同时找出最小值与最大值

    关于选择排序的优化--同时找出最小值与最大值 近期在学习排序算法,第一种方法就是选择排序.首先选择排序是一种不稳定的算法,其思想是通过遍历数组,找出最小值(最大值)的位置,放到已排序序列的启示(末尾) ...

  5. 交换最小值和最大值 (15 分)

    7-54 交换最小值和最大值 (15 分) 本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列. 注意:题目保证最大和最小值都是唯一的. ...

  6. max日期最大值为0_C语言编写程序输出10个整数中最小值或最大值

    C语言编写程序输出10个整数中最小值或最大值 这是一个比较基础,同时也包含C语言中诸多特点的程序,仔细体会有很多的格式规则和技巧.其中包括:输入语句,输出语句,数组,分支结构,循环结构.希望广大C语言 ...

  7. c语言一个整数各位数字个数_C语言编写程序输出10个整数中最小值或最大值

    C语言编写程序输出10个整数中最小值或最大值 这是一个比较基础,同时也包含C语言中诸多特点的程序,仔细体会有很多的格式规则和技巧.其中包括:输入语句,输出语句,数组,分支结构,循环结构.希望广大C语言 ...

  8. 笔记 C++11 std::minmax_element() 的使用(寻找最小值和最大值)

    0. 函数的声明 可以看到:返回一个 std::pair<ForwardIt,ForwardIt> (pair 对) template< class ForwardIt > s ...

  9. 计算机屏幕最小值,虚拟内存最大值最小值如何设置好?

    虚拟内存的最小值和最大值应该设置为多少才合适 其最小值设置为物理内存的1.5倍,最大值设置为物理内存的3倍虚拟内存内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大 ...

最新文章

  1. WindowManager如何被Android深度解析(1)
  2. 图片本地化 php,php抓取远程图片本地化函数,很好用的.喜欢的拿去
  3. python数据分析工资_python3对拉勾数据进行可视化分析的方法详解
  4. Enterprise Library 企业库 V4.1
  5. 1160. 拼写单词
  6. argparse、glob、findall
  7. 关闭rhel 6.5的selinux
  8. 从设计门禁系统到为何需要弱电与强电分开呢?
  9. qt TCP 网络编程
  10. 现金支票打印模板excel_施工表格填写不规范?500套最全施工资料表格模板,可直接套用|面层|分项...
  11. 线性表的链式存储结构详解
  12. spss实现中心化处理、标准化处理和归一化处理
  13. java开发工具eclipse中@author怎么改
  14. Python绘图实例35:漫天雪花绘制
  15. Oracle 安装步骤
  16. mysql启动报没有发现index,log_bin.index not found 启动报错解决
  17. windows 工具命令 cmd
  18. python面试常问
  19. Android开发——如何设计开发一款Android App
  20. 嵌入式linux系统-Kernel串口2做交互终端

热门文章

  1. git fatal: unable to access  Failed to connect to localhost port 1080: Connection refused
  2. java计算机毕业设计精准扶贫管理系统源码+数据库+lw文档+系统
  3. Biu~送你 20 个提供远程工作的网站,都很棒
  4. 如何设计杀手级的物联网产品或服务?
  5. 30岁女生转行做软件测试,本人三十岁,女,现在软件测试行业,想转行,什么行业合适呢?...
  6. xlwings跨工作簿复制粘贴工作表——小白文章
  7. arcgis api for javascript 4.16 定位功能的实现
  8. 金蝶EAS通过第三方系统单点登录
  9. Spring Security 密码验证动态加盐的验证处理
  10. Windows 环境下查看 Redis 版本号命令