1.2-2 假设我们正比较插入排序与归并排序在相同机器上的实现。对规模为n的输入,插入排序运行8n^2步,而归并排序运行64nlgn步。问对哪些n值,插入排序优于归并排序?
由题意插入排序优于归并排序,即8n^2<64nlgn,即n<8lgn。通过初步计算可得,当n=64时,归并排序优于插入排序,因此n要小于64。
import math
for n in range(1,64):
if n < (8 * math.log(n, 2)):
print(n)
可得n为
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43