算法导论 1.2-2

来源:互联网 发布:淘宝网中老年女上装 编辑:程序博客网 时间:2024/05/29 19:32

题目   

假设我们要比较同一台计算机上插入排序和合并排序的实现。对于规模为n的输入,插入排序要运行步,而合并排序要运行步。当n怎样取值时,插入排序的性能要优于合并排序?


分析

 <  <=>  < ,当n=64时,=48,  > 

代码

将1~64的值打印出来
可知,n<=43时,插入排序性能优于合并排序
import mathfor i in range(1,64):    print str(i) + " " + str(8 * math.log(i,2))

1 0.0
2 8.0
3 12.6797000058
4 16.0
5 18.5754247591
6 20.6797000058
7 22.4588393765
8 24.0
9 25.3594000115
10 26.5754247591
11 27.6754529491
12 28.6797000058
13 29.6035177451
14 30.4588393765
15 31.2551247649
16 32.0
17 32.69970273
18 33.3594000115
19 33.9834201075
20 34.5754247591
21 35.1385393822
22 35.6754529491
23 36.1884956485
24 36.6797000058
25 37.1508495182
26 37.6035177451
27 38.0391000173
28 38.4588393765
29 38.863847961
30 39.2551247649
31 39.6335704831
32 40.0
33 40.3551529549
34 40.69970273
35 41.0342641356
36 41.3594000115
37 41.675626925
38 41.9834201075
39 42.2832177509
40 42.5754247591
41 42.8604160369
42 43.1385393822
43 43.4101180376
44 43.6754529491
45 43.9348247706
46 44.1884956485
47 44.4367108134
48 44.6797000058
49 44.9176787529
50 45.1508495182
51 45.3794027358
52 45.6035177451
53 45.8233636365
54 46.0391000173
55 46.2508777082
56 46.4588393765
57 46.6631201133
58 46.863847961
59 47.0611443949
60 47.2551247649
61 47.4458987005
62 47.6335704831
63 47.818239388