演算法題 含答案和解析

2021-10-21 11:59:24 字數 1700 閱讀 7865

1. 使用堆排序方法排序(45,78,57,25,41,89),初始堆序列( )

a  78,45,57,25,41,89

b  89,78,57,25,41,45

c  89,78,25,45,41,57

d  89,45,78,41,57,25

2. 當n=5時,函式輸出為( )

int foo(int n)

a  5

b  11

c  29

d  10

3. 若一組記錄的排序碼為(7,9,3,5,1,2,10),則利用堆排序的方法建立的初始堆為( )

a  10,7,9,3,5,1,2

b  10,9,7,5,1,2,3

c  10,9,7,5,3,2,1

d  10,9,7,3,2,1,5

4. 目前以比較為基礎的內部排序方法中,其比較次數與待排序的記錄的初始排列狀態無關的是( )

a  插入排序

b  快速排序

c  二分插入排序

d  氣泡排序

5. 給定下列**:

for (int i=1; i < n; i*=3)

}已知n是乙個整數:foo()時間複雜度為o(1),上述**的時間複雜度是( )

a  o(logn)

b  o(n)

c  o(n*log(n))

d  o(log(n)^2)

6. 以下是根據檔案大小分配儲存空間的乙個演算法偽**,請問其空間複雜度是多少( )

while (file still open)

let n = size of file

for every 100,000 kilobytes of increase in file size

double the amount of memory reserved

a  o(n)

b  o(n^2)

c  o(2^n)

d  o(n*log(n))

7. 已知乙個大小為n的整型陣列,現求該陣列的全部連續子陣列的元素之和的最大值,最優演算法的時間複雜度是( )如:a[4]=,它的全部連續子陣列為,它們的元素之和為,其中的最大值為4。

a  o(logn)

b  o(n)

c  o(n*logn)

d  o(n^2)

8. 以下是乙個對陣列a(含有n個數值元素)進行排序的演算法偽**,請問它的平均時間複雜度是多少( )

for i ← 1 to length(a) - 1

j ← i

while j > 0 and a[j-1] > a[j]

swap a[j] and a[j-1]

j ← j - 1

a  o(n)

b  o(n^2)

c  o(1)

d  o(log(n))

9. (7-6-3-5-4-1-2)堆排序,公升序排列,3的位置改變幾次( )

a  1

b  2

c  3

d  4

e  5

f  6

10. 現有1gb資料進行排序,計算資源只有1gb記憶體可用,下列排序方法中最可能出現效能問題的是( )

a  堆排序

b  插入排序

c  歸併排序

d  快速排序

e  選擇排序

f  氣泡排序

獲取答案和詳細的答案解析:

演算法題 含答案和解析

1.某段文字中各個字母出現的頻率分別是,使用哈夫曼編碼,則哪種是可能的編碼 a a 001 b 000 h 01 i 10 o 11 b a 0000 b 0001 h 001 o 01 i 1 c a 000 b 001 h 01 i 10 o 00 d a 0000 b 0001 h 001 o...

演算法題 含答案和解析

1.十字鍊錶是無向圖的一種儲存結構 a 對 b 錯 2.以下關於廣義表的敘述中,正確的是 a 廣義表是0個或多個單因素或子表組成的有限序列 b 廣義表至少有乙個元素是子表 c 廣義表不可以是自身的子表 d 廣義表不能為空表 3.kmp演算法的最大特色是指示主串的指標不需回溯 a 正確 b 錯誤 4....

演算法題 含答案和解析

1.分支限界法與回溯法都是在問題的解空間樹t上搜尋問題的解,關於二者說法中正確的是 a 求解目標不同,搜尋方式相同 b 求解目標不同,搜尋方式也不同 c 求解目標相同,搜尋方式不同 d 求解目標相同,搜尋方式也相同 2.下列程式段,迴圈體執行次數是 y 2 while y 16 y 2 print ...