Chinaunix首页 | 论坛 | 博客
  • 博客访问: 167202
  • 博文数量: 46
  • 博客积分: 2820
  • 博客等级: 少校
  • 技术积分: 755
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-18 01:16
文章分类

全部博文(46)

文章存档

2011年(2)

2010年(12)

2009年(6)

2008年(26)

我的朋友

分类: C/C++

2009-07-04 09:07:47

blogsopt被封。只能再启用cublog.

常见排序方法实现c语言实现参考:
 
文件: sort_c_-20090704.zip
大小: 21KB
下载: 下载

项目文件是vc6的。换其它开发环境只要修改某些头文件即可。其中的数据量规模修改宏DATA_SIZE,参与测试的排序法修改types。

参考:
[1]
[2] 《算法设计技巧与分析》[沙特 M.H.Alsuwaiyel 著]


时间性能较好的,明显形成了第一集团,即ShellSort、ShellSort2、MergeSort、BottomUpSort、QuickSort、HeapSort。

值得注意的是ShellSort(希尔排序)及其黄金步距版ShellSort2。ShellSort是SelectSort的改进版。

windowxp下面测试数据(1G内存,AMD64X2 1.9G ),时间单位秒:

BottomUpSort ShellSort2 MergeSort ShellSort QuickSort HeapSort
100万 0.453 0.453 0.485 0.485 0.469 0.812
0.454 0.454 0.484 0.485 0.5 0.797
0.453 0.453 0.484 0.5 0.469 0.782
平均 0.453 0.453 0.484 0.49 0.479 0.797
500万 2.469 2.531 2.578 2.656 4.172 6.125
2.484 2.547 2.625 2.625 4.25 6.094
2.5 2.546 2.61 2.64 4.14 6.015
平均 2.484 2.541 2.604 2.640 4.187 6.078
1000万 5.109 5.219 5.343 5.485 12.875 13.922
5.188 5.219 5.391 5.531 13.031 14.187
5.109 5.282 5.375 5.547 12.969 14.093
平均 5.135 5.24 5.370 5.521 12.958 14.067
5000万 27.282 28.344 28.953 29.484 247.562 90.516
27.203 28.453 28.75 29.391 246.906 90.703
27.203 28.453 28.531 29.328 246.203 90.844
平均 27.229 28.417 28.745 29.401 246.890 90.688



上面的数据说明 shellsort2排序,独领风骚。
但我在 linux下作的测试,发现数据量大后,quickSort领先。
至于两个系统下为何有如此大差距,有待查明。
 


阅读(700) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~