先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html
本文思路部分来源于上篇文章,但测得的结果似乎不大相同,不知是因为java的缘故还是因为我算法的缘故,欢迎拍砖。
复习排序,顺便比下各种算法的速度,榜单如下:
1、冒泡排序
2、简单选择排序
3、直接插入排序
4、折半插入排序
5、希尔排序
6、堆排序
7、归并排序
8、快速排序
当然这是慢速排行,哈哈~~
直接上图:单位毫秒
冒泡排序 |
简单选择排序 |
直接插入排序 |
折半插入排序 |
希尔排序 |
堆排序 |
归并排序 |
快速排序 |
|
10000个 |
1578 |
1250 |
672 |
250 |
0 |
15 |
16 |
0 |
15000个 |
3453 |
2765 |
1563 |
531 |
16 |
15 |
16 |
0 |
20000个 |
6140 |
4547 |
2453 |
828 |
16 |
16 |
15 |
16 |
25000个 |
10079 |
7171 |
3969 |
1313 |
31 |
16 |
15 |
16 |
30000个 |
14641 |
10313 |
5578 |
1906 |
31 |
31 |
16 |
31 |
35000个 |
20141 |
14328 |
7890 |
2563 |
31 |
31 |
32 |
15 |
40000个 |
25766 |
18359 |
10094 |
3422 |
47 |
31 |
31 |
32 |
45000个 |
32469 |
24063 |
13062 |
4359 |
47 |
47 |
31 |
47 |
由于"希尔排序","堆排序","归并排序","快速排序"太快,以至于在上图几乎是条直线,故有了下面转为他们准备的加强版
数量 |
希尔排序 |
堆排序 |
归并排序 |
快速排序 |
100000个 |
172 |
140 |
110 |
93 |
200000个 |
469 |
406 |
235 |
234 |
300000个 |
812 |
703 |
422 |
375 |
400000个 |
1125 |
1031 |
516 |
531 |
500000个 |
1406 |
1282 |
719 |
656 |
600000个 |
1828 |
1703 |
860 |
859 |
700000个 |
2531 |
2063 |
1000 |
968 |
800000个 |
2735 |
2453 |
1140 |
1188 |
900000个 |
3047 |
2843 |
1391 |
1266 |
1000000个 |
3375 |
3187 |
1516 |
1422 |
1100000个 |
3922 |
3500 |
1625 |
1609 |
1200000个 |
4421 |
3954 |
1969 |
1812 |
1300000个 |
4797 |
4422 |
2000 |
1953 |
1400000个 |
5391 |
4797 |
2547 |
2094 |
1500000个 |
5437 |
5219 |
2625 |
2328 |
1600000个 |
6203 |
5546 |
2469 |
2485 |
1700000个 |
6532 |
5953 |
2844 |
font-size: 1em; width: 131px; border-top-style: none; border-top-color: initial; border-left-style: none; border-left-color: initial; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; pa
发表评论相关资源推荐
最新评论
|
评论