zoukankan
html css js c++ java
从n个数里面找最大的两个数理论最少需要比较
答案是:n+logn-2
过程是这样的:
甲乙比甲胜出,丙丁比丙胜出,最后甲丙比较,甲胜出。。。容易得出找出最大数为n-1次。
现在开始找出第二大的数字:明显,第二大的数字,一定和甲进行过比较。。。。如图中可能是丙、乙,得出一个规律:除了第一层外,每一层都有一个数字和甲进行过比较,那么n个节点,一共有log(n)+1层,也就是还需要在log(n)个数字里面进行比较log(n)-1次。
综上:共n+log(n)-2次比较。
查看全文
相关阅读:
try-catch 回滚事务,避免回滚失效的操作
Java 7中的Try-with-resources
Linux开发环境之配置静态IP地址
Windows和Linux系统如何退出python命令行
Python基础(一)
Linux开发环境之nginx
Linux开发环境之安装自带jdk
Linux删除命令的几种方式
MySQL之新建索引原则
webapp环境搭建(一)
原文地址:https://www.cnblogs.com/zkfopen/p/10828299.html
最新文章
VC获取mac地址
6.6 Java8 改进的接口
Struts2的内建验证器
Struts2中验证表单数据(使用声明式验证)
Struts2 的入门案例配置
鸡啄米-VS2010/MFC编程入门
VC6.0 设置批量注释
java中instanceof和getClass()的区别
Java中的 try、catch、finally
【C语言基础】表达式与运算符
热门文章
【C语言基础】数据类型
【C语言基础】函数
【opensstack】【部署】devstack的安装
【C语言基础】数组
【C语言基础】动态内存管理
【openstack】【基础】基本组件
【C语言基础】声明
【C语言基础】多线程
【C语言基础】输入和输出
防止 NPE,是程序员的基本修养,注意 NPE 产生的场景
Copyright © 2011-2022 走看看