50万个有序的数据中查找一个key, 使用的是 O(logN) 的算法, 简单来说就是二分查找,在我的理解中O(logN)就是在一颗平衡的二叉树中查找一个数据, 数据结构可能不同,但是形式是一样的,就是把数据分成两份,不断的分成2份
1.那么50W有序的数据使用O(logN)算法查找,如何计算出最坏的情况下,需要查找多少次,才能找到数据?
"我目前知道的O(logN)的理解:
当数据增大n倍时,耗时增大logN倍,log以2为底
当数据增大8倍时:
8 = log(2) ^ 3, 所以数据增大8倍,耗时只增大3倍"
O(logN) = 2^n >= N 那么最坏就需要查找n次
50W = 2^19 = 524288 >= 500000 = 19 最坏需要查找19次