关于使用二分思想算法的时间复杂度的计算
2015-07-23 22:07
393 查看
二分法可以有效减少算法的时间复杂度,主要是因为二分法可以将一个庞大数据集逐渐分割成多个独立小数据集。如下图所示。
二分法深度logN,底数为2。计算方法如下:假设深度为x,则N*2^x=1,的x=logN,底数为2。
从算法的层面来说,基于二分思想的算法,算法的循环次数一般为logN。
我们知道,很多算法都是基于二分思想设计的,如二分查找、快速排序法。
对于快速排序法平均时间复杂度的估算:
该算法的循环次数为logN即二分深度。每次循环时间复杂度小于N,则可得快速排序法的平均时间复杂度为NlogN。这里的估算是一种理想下的评估,实际情况下可能不是每次循环都满足二分。
二分法深度logN,底数为2。计算方法如下:假设深度为x,则N*2^x=1,的x=logN,底数为2。
从算法的层面来说,基于二分思想的算法,算法的循环次数一般为logN。
我们知道,很多算法都是基于二分思想设计的,如二分查找、快速排序法。
对于快速排序法平均时间复杂度的估算:
该算法的循环次数为logN即二分深度。每次循环时间复杂度小于N,则可得快速排序法的平均时间复杂度为NlogN。这里的估算是一种理想下的评估,实际情况下可能不是每次循环都满足二分。
相关文章推荐
- R语言——1
- 工程下有一个红叉,但是可以照常运行
- html5.0与html4的“区别”
- LRU Cache的简单实现
- Python的高级特性10:无聊的@property
- 2015 HUAS Summer Training#2~C
- 什么是文件路径名?
- Scala深入浅出实战经典之 List伴生对象操作方法代码实战.
- Python个人学习笔记1_初识python_http服务器篇
- Kconfig
- linux c编程访问数据库
- 欧拉工程第51题:Prime digit replacements
- MySQL解压版安装配置
- C语言程序 运算符
- 高端ARM选型的一些观点
- js学习之--Bootstrap Modals(模态框)
- 产生一个随机序列
- 使用Reveal来查看别人的APP界面+白苹果不刷机解决方案
- 指针数组和数组指针
- Lua代码编写规范