原文:算法学习:我终于明白二分查找的时间复杂度为什么是O(logn)了

最近发现了个好东西,就是一个学算法的好东西,是网易公开课的一个视频。 直通车 这是麻省理工学院的公开课,有中英字幕,感谢网易。。 也可以在App把视频缓存下来之后再放到电脑上面看,因为我这样可以倍速,毕竟每集几乎一个多小时。 回到标题,就是突然顿悟了一样,就知道时间复杂度大概是怎么算的了。 因为在学校上课的时候没听明白,太官方了,而且课下也没钻研时间复杂度这个事,所以一直云里雾里的。 时间复杂度是 ...

2019-07-30 21:29 0 6908 推荐指数:

查看详情

几个时间复杂度O(logN)的算法

1 二分查找算法 二分查找算法适合:只需查找,不需要插入(O(N)复杂度?)和删除的情况。如查询元素周期表这种较稳定的数据。 2 欧几里德算法(求最大公因数) 若M > N,则第一次循环交换M和N。 若想分析其时间复杂度,则要求循环次数,即生成余数的次数 ...

Wed Feb 26 17:58:00 CST 2014 1 13359
算法时间复杂度概括——o(1)、o(n)、o(logn)、o(nlogn)

在描述算法复杂度时,经常用到 o(1), o(n), o(logn), o(nlogn) 来表示对应算法时间复杂度, 这里进行归纳一下它们代表的含义:这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量 ...

Fri Jul 19 19:20:00 CST 2019 0 551
计算二分查找时间复杂度

线性查找并不总是O(N)的。当要找的元素在数组末尾,那确实是O(N)。但如果它在数组开头,1 步就能找到的话,那么技术上来说应该是O(1)。所以概括来说,线性查找的最好情况是O(1),最坏情况是O(N)。虽然大O可以用来表示给定算法的最好和最坏的情景,但若无特别说明,大O 记法一般都是指最坏情况 ...

Sat Apr 04 01:42:00 CST 2020 0 2386
时间复杂度 二分查找

时间复杂度 时间复杂度是用来估计算法运行时间的一个式子(单位)。 一般来说,时间复杂度高的算法复杂度低的算法慢。 常见的时间复杂度(按效率排序) O(1) < O(log n) < O(n) < O(n log n) < O(n ...

Mon Apr 22 20:49:00 CST 2019 0 485
二分查找时间复杂度推导

  二分查找是一个非常常用且简洁的查找算法,相信很多人也知道它的时间复杂度logN,但是我看网上的大多数博客给出的所谓推导过程都十不严谨,于是我花了些时间自己写了推导过程。 首先上二分查找的代码: 下面是推导过程: 假设数据的规模为N(即每次调用时的high-low),程序 ...

Sat Mar 04 23:48:00 CST 2017 0 7803
二分查找时间复杂度分析

因为二分查找每次排除掉一半的不适合值,所以对于n个元素的情况:一次二分剩下:n/2两次二分剩下:n/2/2 = n/4。。。m次二分剩下:n/(2^m)在最坏情况下是在排除到只剩下最后一个值之后得到结果,所以为 n/(2^m)=1;2^m=n;所以时间复杂度为:log2(n) ...

Mon Mar 28 18:33:00 CST 2016 1 17313
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM