TA的每日心情 | 慵懒 2016-4-21 12:07 |
---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I 累计签到:3 天 连续签到:1 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
这个属于 算法啦!好东西8 H' d7 K7 J9 o/ f. c
_) z8 L. w0 @
1. 排序的基本概念5 U8 _& O9 _: [
假定排序对象为若干记录组成的一个集合,每个记录包含若干个字段,选取其中一个或多个字段为排序码。我们暂时假设排序码的类型为整数类型。
\$ ]. J7 @ Z% n/ L “正序”序列:待排序序列正好符合排序要求。
" [+ J4 Y; w" ^2 F: ~ “逆序”序列:把待排序序列逆转过来,正好符合排序要求。
8 s! M/ V' N% L) s/ }: `# \ 排序的稳定性:排序码相同的记录经过排序后相对次序保持不变,则这种排序方法称为是“稳定的”,否则是不稳定的。2 k4 L& l2 c1 k' L) f
2. 分类2 O5 _4 S$ e% M9 e6 R0 V
按排序中涉及的存储器不同2 D$ I- a4 k; X% R
1)内部排序是把待排数据元素全部调入内存中进行的排序。
: n4 P% Z9 O$ y8 c' j 2)外部排序是因数量太大,把数据元素分批导入内存,排好序后再分批导出到磁盘和磁带外存介质上的排序方法。
4 a' G2 s/ I$ j: a& A 按照排序方法分类
* z! u3 l& _ }7 P" d- ? 1)插入排序:直接插入、二分法插入、表插入、Shell排序! J) g* a& o: e& {2 v: n
2)选择排序:直接选择、堆排序
: V" N: p4 [" f: y 3)交换排序:冒泡排序、快速排序
& A( I+ P- T1 B 4)分配排序:基数排序" t8 ~6 D0 j/ o& C7 \0 K+ ]
5)归并排序:二路归并排序
, y. y: z; }, c5 G( z& ^: J3、排序算法的评价; Y; J: c) u2 n0 k( P- G
1)时间复杂度:分析记录关键字的比较次数和记录的移动次数 (重要评价标准)
5 ]& J) v) X( w# N2 }- X, q( o) B 2)空间复杂度:算法中使用的内存辅助空间
9 v# w+ ^4 k9 l3 T" X8 I" B 3)排序的稳定性! V7 h; H1 E" B' Q _* [1 J
4)算法本身的复杂程度
^1 }" h2 c+ K, ]/ M1 [
]. k, g1 \- m1 N4 L一、选择排序与堆排序
. ^, O! ]' u1 J0 M1.直接选择排序6 k$ U) ?) R0 E' y7 D4 n
思路比较简单:即依次从剩余记录中选取最小的4 M6 ?8 a6 u/ l
2.堆排序
8 h$ W7 k5 B! B* Y6 p7 x \ Z/ X
, l% \, V5 @* r! s2 D& c& |9 J 利用堆的思想,建立一个最大堆,把堆顶的元素(最大值)拿掉,再重新建堆,依次递归 |
|