黑马程序员技术交流社区

标题: Java中排序算法的效率该怎么比较 [打印本页]

作者: 想你的夜    时间: 2013-11-18 22:17
标题: Java中排序算法的效率该怎么比较
请问大神们,Java中排序算法的效率该怎么比较?常用的冒泡排序,插入排序,快速排序,还有选择排序该怎么比较??我知道各个排序算法都有自己的优劣,但是笼统的说该怎么比较?或者从哪个方面进行比较,求大神指点
作者: 段光宇    时间: 2013-11-18 22:22
排序算法基本有几种:
1.插入排序2.冒泡排序3.快速排序4.选择排序5.归并排序
如果n较小,可采用直接插入或直接选择排序。
当n较小时,直接插入排序比较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。
若文件初始状态基本有序,则应选用直接插人、冒泡或随机的快速排序。
如果n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
作者: 想你的夜    时间: 2013-11-19 10:15
段光宇 发表于 2013-11-18 22:22
排序算法基本有几种:
1.插入排序2.冒泡排序3.快速排序4.选择排序5.归并排序
如果n较小,可采用直接插入或 ...

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

错了,忘带例子了
作者: 想你的夜    时间: 2013-11-19 14:31
wssjdysf 发表于 2013-11-19 10:19
有一个直面一点的比较,就是比他们的排序时间呀,你弄同一个数组给他们排序,然后算算时间差呗,越短的越好 ...

多谢指点,但是如果单纯的从排序时间来比较是不是有片面性,如果在一个更复杂 的环境中,时间还是首要考虑因素吗?例如安全和稳定性如果也纳入其中的话,是不是该综合来考虑




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2