A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 想你的夜 中级黑马   /  2013-11-18 22:17  /  1637 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问大神们,Java中排序算法的效率该怎么比较?常用的冒泡排序,插入排序,快速排序,还有选择排序该怎么比较??我知道各个排序算法都有自己的优劣,但是笼统的说该怎么比较?或者从哪个方面进行比较,求大神指点

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
排序算法基本有几种:
1.插入排序2.冒泡排序3.快速排序4.选择排序5.归并排序
如果n较小,可采用直接插入或直接选择排序。
当n较小时,直接插入排序比较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。
若文件初始状态基本有序,则应选用直接插人、冒泡或随机的快速排序。
如果n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。

点评

FFF
不带例子的水货~  发表于 2013-11-19 00:21
回复 使用道具 举报
段光宇 发表于 2013-11-18 22:22
排序算法基本有几种:
1.插入排序2.冒泡排序3.快速排序4.选择排序5.归并排序
如果n较小,可采用直接插入或 ...

我就是想知道,排序算法的效率该怎么比较,或者说从那面比较,木有水:'(
回复 使用道具 举报
有一个直面一点的比较,就是比他们的排序时间呀,你弄同一个数组给他们排序,然后算算时间差呗,越短的越好,(还有看他们的耗内存度---这是我认为了,但是我没实现过对比感觉难对比吧,无从下手的样子)比时间我是实现过了的,我专门写了一个小框架来比较的。
回复 使用道具 举报
段光宇 发表于 2013-11-18 22:22
排序算法基本有几种:
1.插入排序2.冒泡排序3.快速排序4.选择排序5.归并排序
如果n较小,可采用直接插入或 ...

错了,忘带例子了
回复 使用道具 举报
wssjdysf 发表于 2013-11-19 10:19
有一个直面一点的比较,就是比他们的排序时间呀,你弄同一个数组给他们排序,然后算算时间差呗,越短的越好 ...

多谢指点,但是如果单纯的从排序时间来比较是不是有片面性,如果在一个更复杂 的环境中,时间还是首要考虑因素吗?例如安全和稳定性如果也纳入其中的话,是不是该综合来考虑
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马