首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
专题开发/技术/项目
英特尔多核计算技术
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
各种排序方法的比较(转帖)
加为好友
发送私信
在线聊天
zm0011
zm0011
等级:
发表于:
2008-04-17 11:12:16
楼主
排序方法的选用应该根据具体情况而定,一般应该从以下几个方面综合考虑:⑴时间复杂性;⑵空间复杂性;⑶稳定性;⑷算法简单性;⑸待排序记录个数n的大小;⑹记录本身信息量的大小;⑺关键码的分布情况。
1. 时间复杂性
表8-1各种排序方法性能的比较
前面所述各种内排序的时间和空间性能的比较结果如图所示。
2. 空间复杂性
从空间复杂性看,所有排序方法分为三类:
归并排序单独属于一类,其空间复杂性为O(n);
快速排序单独属于一类,其空涓丛有晕?em>O(log2n) ~ O(n);
其它排序方法归为一类,其空间复杂性为O(1)。
3. 稳定性
所有排序方法可分为两类,一类是稳定的,包括直接插入排序、起泡排序、简单选择排序和归并排序;
另一类是不稳定的,包括希尔排序、快速排序和堆排序。
4. 算法简单性
从算法简单性看,一类是简单算法,包括直接插入排序、简单选择排序和起泡排序;
另一类是改进算法,包括希尔排序、堆排序、快速排序和归并排序,这些算法都很复杂。
5. 待排序的记录个数n的大小
从待排序的记录个数n的大小看,n越小,采用简单排序方法越合适。
6. 记录本身信息量的大小
表8-2三种简单排序算法中记录的移动次数的比较
记录本身信息量越大,移动记录所花费的时间就越多,所以对记录的移动次数较多的算法不利。
排序方法
最好情况
最坏情况
平均情况
直接插入排序
O(n)
O(n2)
O(n2)
起泡排序
0
O(n2)
O(n2)
简单选择排序
0
O(n)
O(n)
7. 关键码的分布情况
当待排序记录序列为正序时,直接插入排序和起泡排序能达到O(n)的时间复杂度;
对于快速排序而言,这是最坏的情况,此时的时间性能蜕化为O(n2);
简单选择排序、堆排序和归并排序的时间性能不随记录序列中关键码的分布而改变。
问题点数:
10
回复次数:
5
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zm0011
zm0011
等级:
发表于:
2008-04-26 11:17:55
1
楼 得分:
0
同学们都不看,我自己来顶一顶
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
denghui0815
denghui0815
等级:
发表于:
2008-04-26 20:00:22
2
楼 得分:
0
都看过了 只是没有顶
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
denghui0815
denghui0815
等级:
发表于:
2008-04-26 20:00:46
3
楼 得分:
0
好像国外的奖品增加了 :)
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zm0011
zm0011
等级:
发表于:
2008-04-26 20:11:14
4
楼 得分:
0
如果两边都可以参加,你的室内温度也许会以两倍速度增加
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
haojn
等级:
发表于:
2008-04-26 21:26:08
5
楼 得分:
0
好像也没有写不能同时参加...
国外还是100$吧
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
abc推荐给好友