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 ...