二分查找和大O表示法

栏目: 编程工具 · 发布时间: 5年前

内容简介:那么得出结论,对于 n 个元素,用二分查找最多需要 log2(n) 步,简单查找最多需要 n 步2^log2 (n)=n,log 叫对数运算,2^n 叫幂运算,他们互为逆运算注意二分查找法必须是有序的,简单来说就是分一半
  • 如果从中间值开始猜
  • 那么临界点就是 99,最坏的情况下只用猜七次,50 错,75 错..这样猜

那么得出结论,对于 n 个元素,用二分查找最多需要 log2(n) 步,简单查找最多需要 n 步

2^log2 (n)=n,log 叫对数运算,2^n 叫幂运算,他们互为逆运算

算法实现

注意二分查找法必须是有序的,简单来说就是分一半

大 O 表示法

指出的是最糟情况下的运行时间,也可以说是操作数

  • 这里用大 O 表示法讨论运行时间,都是讨论的最糟糕的临界值,比如简单查找 100 个元素,就是要看每一个元素。二分查找也是查看最远的,那么就只用查看 log100 个元素约为 7
  • log 时间这里的底数默认是 2,也就是默认是 log2
  • 其实我们是用幂运算的眼光来看,我们求的运行时其实就是指数

概念

  • 大 O 表示法指出了算法有多快。例如,假设列表包含 n 个元素,简单查找需要检查每个元素,因此需要执行 n 次查找,运行时间位 O(n)
  • O(n),单位不是秒,大 O 表示法指的并不是以秒为单位的速度,而是能够比较操作数,它指出了算法运行时间的增速
  • 所以 n 是操作数的意思
  • 谈论算法的速度,是随着输入的增加,其运行事件将以怎么样的速度增加

常见的大 O 运行时间

由快到慢的经常遇到的五种,可以自己想象一下坐标系图

  • O(log n),也叫对数时间,这样的算法包括二分查找
  • O(n),线性时间,包括简单查找
  • O(n*log n),包括快速排序(业界俗称快排),一种速度较快的快速排序
  • O(n^ 2),包括选择排序,一种速度较慢的 排序 算法
  • O(n!),包括旅行商问题的解决方案,一种非常慢的算法

旅行商问题

旅行商要前往 5 个城市,同时确保旅程最短,这样它要每个城市都去,然后计算总旅程,再挑选路线最短的

  • 5 个城市有 120 种不同的排列方式,因此需要 120 次操作
  • 这是一个非常非常慢的算法,但是这个问题也是计算机科学领域待解决的问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

SQL必知必会

SQL必知必会

福达 (Ben Forta) / 钟鸣、刘晓霞 / 人民邮电出版社 / 2013-5-1 / 29.00元

SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能。 本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰富,文字简洁明快,针对Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各种主流数据库提供了大量简明的实例。与其他同类图书不同,它没有过多阐述数据库基础理论,而是专门针对一线软件开发人员,直接从SQL SELECT开始,讲述......一起来看看 《SQL必知必会》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具