TA的每日心情 | 慵懒 2016-4-21 12:07 |
|---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I 累计签到:3 天 连续签到:1 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
这个属于 算法啦!好东西( C2 V2 {; R1 O# P
- Q8 e( z- P; ]
1. 排序的基本概念- w$ d; l, D# {
假定排序对象为若干记录组成的一个集合,每个记录包含若干个字段,选取其中一个或多个字段为排序码。我们暂时假设排序码的类型为整数类型。( I0 [0 ^% x/ u& N! x0 Q
“正序”序列:待排序序列正好符合排序要求。8 Q& m6 }8 q2 H3 R/ [0 Y
“逆序”序列:把待排序序列逆转过来,正好符合排序要求。' c9 \' A+ p: f1 S5 @
排序的稳定性:排序码相同的记录经过排序后相对次序保持不变,则这种排序方法称为是“稳定的”,否则是不稳定的。
" ` t/ _$ c; u& i) G' C) H2. 分类
$ m8 p- h) Y, _! ] 按排序中涉及的存储器不同3 h. |7 E& }& p1 Z5 R- z
1)内部排序是把待排数据元素全部调入内存中进行的排序。
1 Q" T8 t, W7 F/ H3 V 2)外部排序是因数量太大,把数据元素分批导入内存,排好序后再分批导出到磁盘和磁带外存介质上的排序方法。9 n0 K7 l1 w4 w4 l5 |0 q, ?9 @6 m- @
按照排序方法分类
. ^( `' K9 h# E& M, } 1)插入排序:直接插入、二分法插入、表插入、Shell排序9 ]% R- R2 }9 o' L3 d1 w" H& D
2)选择排序:直接选择、堆排序& C* B3 s" s4 L Y
3)交换排序:冒泡排序、快速排序" O2 v/ j, z" E8 K% S' D
4)分配排序:基数排序4 t% z# c7 `; _4 W+ h G& D- f' L
5)归并排序:二路归并排序# Q. I! r3 h x1 q
3、排序算法的评价
: d* O9 a& F) w% t6 I( z 1)时间复杂度:分析记录关键字的比较次数和记录的移动次数 (重要评价标准); [ q9 V& G' s1 y% [! ^% F& h
2)空间复杂度:算法中使用的内存辅助空间% i# z* `0 Q: `- J
3)排序的稳定性
8 g. F1 o/ q- Z 4)算法本身的复杂程度8 s" i0 ^4 ^2 p5 u) d
% V* l: p7 x1 O# e$ y
一、选择排序与堆排序% b5 {" a0 o5 s- K
1.直接选择排序7 Y" R* J5 z- p& C' @7 c
思路比较简单:即依次从剩余记录中选取最小的% \/ ?& A& Z1 \# z& ~( E' ^$ K- N
2.堆排序
# B. H% {) z, R% h, j l+ m+ G" u4 q; S: q" q
利用堆的思想,建立一个最大堆,把堆顶的元素(最大值)拿掉,再重新建堆,依次递归 |
|