问一个排序算法选择的问题。

relive 2003-02-26 11:07:58
1、n>10000或>>10000
2、原始数据里重复的数据比较多,
3、要求算法稳定

该选择什么算法

另,如果没有2、就是说如果重复很少

该选择什么算法
...全文
98 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
relive 2003-02-27
  • 打赏
  • 举报
回复
结了。
Riemann 2003-02-26
  • 打赏
  • 举报
回复
试试堆排序方法
xiaonian_3654 2003-02-26
  • 打赏
  • 举报
回复
直接用stl中的stable_sort就行了呀,它是用归并实现的
TO: Cybergate() :
stl中的使用这样的策略在于对于一个很小的排序规模,用heap-sort最好,
而非对于什么情况都是最好
Riemann 2003-02-26
  • 打赏
  • 举报
回复
我的印象中堆排序是一个稳定的排序算法
Cybergate 2003-02-26
  • 打赏
  • 举报
回复
我以前编过非递归的randomized qsort, 在数据重复不多的情况下比stl的sort快,但是如果重复很多,我那个就完全不行了。stl的一个优化在于:如果递归层次太深,则改用heap-sort. 我估计heap-sort比较好。
relive 2003-02-26
  • 打赏
  • 举报
回复
在这谢谢大家了。
relive 2003-02-26
  • 打赏
  • 举报
回复
主要是堆排序、快速排序什么的大多是不稳定的,插入的话大数据量会不会比较慢?

现在暂时用归并排序,想问问各位有没有比较好的算法,查书的话我暂时条件不许可,所以想问问大家。
e_feeling 2003-02-26
  • 打赏
  • 举报
回复
重复数很多的话 用插入排序!
feathersky 2003-02-26
  • 打赏
  • 举报
回复
数据结构的书里很多排序算法 复杂度都差不多 而且要求算法稳定的也有很多
ZhangYv 2003-02-26
  • 打赏
  • 举报
回复
如果关键字是整型的话,可以考虑用一些线型排序的方法,如基数排序或计数排序。否则就用随机快速排序或桶排序。
Riemann 2003-02-26
  • 打赏
  • 举报
回复
没细究,不知是否能满足2。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧