首页 > 编程知识 正文

时间复杂度为logn的排序算法,快速排序第二趟怎么做

时间:2023-05-05 23:03:27 阅读:167633 作者:2292

系列文章目录

1.元件基础

2.电路设计

3.PCB设计

4.元件焊接

6.程序设计

9.检测标准

文章目录一、百度搜索二、编程反推三、高人指点

一.百度搜索

百度搜素log2和lg2,他们居然一样。

二、编程log不写底数时的底数到底是多少?

试着颠倒所有常用的编程语言:

在一般的编程语言中Math.log一般以e为底

三.高人指点彭利

在计算时间复杂度时,您会发现log的底数并不重要。 底部数量的巨大变化不会带来最终的订单变化。 根据改变log底部的公式(不记得是否是这个名字),底部的数量差可以转换成一个数量。 这个数可以看作常数。 然后在确定渐进期时,常数被忽略。 因此,分析算法的大部分时间复杂度时,对数底数的情况可以忽略不计。

算法复杂度中的o(logn )底数是多少

算法中log级别的时间复杂度,由于使用了分治的思路,所以该基数直接决定于分治的复杂度。

采用二分法,以2为底,三分法以3为底,其他也是如此。

但是,不管底数是什么,log水平的渐进意义是一样的。

也就是说,该算法时间复杂度的增加与处理数据的少许增加之间的关系相同。

首先考虑o(logx ) n )和o ) logy ) n )、x吧!=y,我们考虑的是n变得无限的情况。

求出n无限大时的logx(n )/logy(n ) n )的极限,可知极限等于lny/lnx,即常数。

也就是说,当n无限大时,这两个东西只有一个常数不同。

所以从研究算法的角度来看log的底数并不重要。

最后,结合上面,我也谈谈大o的定义(算法导论第28页的定义)。

注意将该定义与高等数学中的极限部分进行比较,

这里的定义明显体现了极限的思想,

使n0成为非常大的数字,

很明显,当n大于n0时,可以看出任意底的对数函数实际上相差常数倍。

所以,o(logn )就像o ) n^2)一样,在书中写道,现在可以表达所有底的对数了。

虽然没有非常严密的证明,但我觉得这样说很容易理解。 如果对证明感兴趣的话,可以参照高数量且极限地走向无限的证明。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。