1
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
/**************************************************************
Problem: 1034
User: qiujiaxin93
Language: C
Result: Accepted
Time:30 ms
Memory:1228 kb
****************************************************************/
写这篇文章的原因是这道题目整整纠结了我两天。这是九度的一道题目,
其实就是一个简单的排序问题,但是难点在有time limited,
所以用最简单的冒泡无法ac通过。后来换了快速排序,自己写的,
结果依然没有ac通过,还是卡在time limited上面,我是按照传统的
快排写的,并不是那种优化后的快排。
测试用例中
可能包含最坏的情况:
即将第一个数选定为key值,那么假如用例中恰好key值后面所有的数恰好均是比它小的数,
那么这个效率就非常低,可能是导致仍然无法
通过time limited的原因。
下面是快排失败的代码:
后来迫不得已才去复习了堆排序,一个是基本忘记得差不多了,
另一个是以前的学习也只是停留在伪代码上,没有解决过什么实际问题。
这一次好好写了一遍HeapSort,还是有收获的,堆排序用于在较多的数据中寻找极值,
效率最高。代码已经贴在上面了,学习学习。
|
寻找大富翁---HeapSort
最新推荐文章于 2018-12-08 18:20:29 发布