資料結構與演算法Python版 第二週測驗

2021-10-13 16:02:11 字數 1867 閱讀 4610

1單選(2分)

判斷下列**段的大o級別:

test =

0for i in

range

(n):

for j in

range

(n):

test = test + i * j

a. o(n^2)

b. o(n^3)

c. o(n)

d. o(n*log(n))

正確答案:a

2單選(2分)

判斷下列**段的大o級別:

test =

0for i in

range

(n):

test = test +

1for j in

range

(n):

test = test -

1

a. o(n^3)

b. o(n^2)

c. o(n*log(n))

d. o(n)

正確答案:d

3單選(2分)

判斷下列**段的大o級別:

for i in

range

(n):

k =2+

2

a. o(n^3)

b. o(n^2)

c. o(n)

d. o(1)

正確答案:c

4單選(2分)

判斷下列**段的大o級別:

def

function

(n):

return n+

2

a. o(n)

b. o(1)

c. o(n^2)

d. o(n^3)

正確答案:b

5單選(2分)

以下是乙個快速冪演算法:

def

pow(x, n)

:if n==0:

return

1elif n==1:

return x

elif n%2==

0:return

pow(x*x, n//2)

else

:return

pow(x*x, n//2)

*x

問它對於n的大o級別。

a. o(n)

b. o(log n)

c. o(nlog n)

d. o(1)

正確答案:b

7多選(3分)

下面的字典操作中哪些是o(1)的?

a. del my_dict[』』]

b. 『』 in my_dict

c. my_dict[』』] += 1

d. my_dict[』』] == 10

正確答案:a、b、c、d

8多選(3分)

令n為問題規模,其中解決本問題的三個演算法稱為a,b,c,他們需要的總運算次數分別是:

a: 96+108n+24n2+12n3

b: 16n+48n^3

c: 10080+168n+7n^2*log(n)

三個演算法的時間複雜度的大o級別中,以下表述正確的有:

得分/總分

a.c演算法的時間複雜度最小

b.b演算法比a演算法的時間複雜度更大

c.a演算法比b演算法的時間複雜度更大

d.a演算法和b演算法的時間複雜度相同

正確答案:a、d

Python資料結構與演算法分析(第2版)閱讀筆記

正文提取碼 fjlk 中序表示式,前序表示式,後續表示式 使用棧這種資料結構來儲存 a b c a 存入列表末端 入棧 b 存入列表末尾 入棧之前,判斷棧裡是否有高於或等於其優先順序的運算子,若有,將其彈出並存到列表末尾,把 存到列表末尾,號入棧 b 存入列表尾部帶括號的情況 a b c d e f...

資料結構與演算法 遞迴演算法(Python版)

一 整數轉換為任意進製 我們用最熟悉的十進位制分析下這個問題 十進位制有十個不同符號 convstring 0123456789 比十小的整數 轉換成十進位制,直接查表 就可以 了 convstring n 想辦法把比十大的整數,拆成一系列比十小的整 數,逐個查表,比如七百六十九,拆成 七 六 九,...

MOOC資料結構與演算法Python版 第六周測驗

1 單選 2分 下列哪個演算法使用到了分治策略?d 2單選 2分 函式值快取最適合使用哪種python中的資料型別?b 3 單選 2分 已知數列g x 滿足 根據遞推式寫出求數列值的遞迴演算法,問原始演算法與採用函式值快取的演算法時間複雜度分別為多少?a 4 單選 2分 博物館大盜問題中,若共有10...