为什么k=log2n时间复杂度表示却是O(logn)?
时间: 2024-04-07 22:28:30 浏览: 176
Python要求O(n)复杂度求无序列表中第K的大元素实例
时间复杂度表示的是算法运行时间的增长率,因此只需要关注增长最快的那一项。在折半查找法中,每次查找都将查找范围缩小一半,因此最坏情况下需要查找log2n次,这是以2为底的对数。但是,对数之间是可以互相转换的,因为对数之间的差别只是一个常数倍数。因此,以2为底的对数可以转换为以10为底的对数,即log2n = log10n / log102。由于log10n和log102都是常数,因此它们对算法的增长率没有影响,可以忽略不计。因此,折半查找法的时间复杂度表示为O(logn)。
阅读全文