自己数一遍二分要几步

自己数一遍二分要几步

补全 bsearch_steps:二分查找,返回一共比较了几次。 在 [13, 15, 17, 23, 24] 里找 13。

阅读更多 →
给一段描述判出复杂度

给一段描述判出复杂度

补全 level:按描述返回复杂度。 四条对应关系:按下标取 → O(1);扫一遍 → O(n);每次扔一半 → O(log n);两层嵌套 → O(n²)。 这次问的是「两层嵌套」。 (⚠️ 表里四

阅读更多 →
从头挨个找呢

从头挨个找呢

同一个数组,改成从头挨个找 24。运行下面这段程序: def lsearch_steps(a, target): steps = 0 for x in a: steps

阅读更多 →
二分找 24 要几步

二分找 24 要几步

在排好序的 [13, 15, 17, 23, 24] 里二分查找 24。运行下面这段程序,它数的是"比了几次": def bsearch_steps(a, target):

阅读更多 →
两两比较把整个数组过一遍又一遍

两两比较把整个数组过一遍又一遍

相邻两两比较、反复扫很多轮(比如冒泡排序),复杂度是【0】。

阅读更多 →
每次扔掉一半

每次扔掉一半

每比一次就能排除掉剩下的一半(比如二分查找),复杂度是【0】。

阅读更多 →
从头到尾遍历一遍

从头到尾遍历一遍

把一个长度为 n 的数组从头扫到尾,时间复杂度是【0】。

阅读更多 →
按下标取一个元素

按下标取一个元素

从数组里按下标取一个元素,时间复杂度是【0】。

阅读更多 →
数出双层循环的次数

数出双层循环的次数

补全 count_two:两层嵌套、各跑 n 次,返回循环体执行了几次。 算 n = 5 的情况——和上一题比一比,这就是 O(n) 和 O(n²) 的差别。

阅读更多 →
数出单层循环的次数

数出单层循环的次数

补全 count_one:返回单层遍历一个长度为 n 的数组时,循环体执行了几次。 算 n = 5 的情况。

阅读更多 →