TA的每日心情 | 慵懒 2016-4-21 12:07 |
---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I 累计签到:3 天 连续签到:1 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
这个属于 算法啦!好东西
; D; \% c( B( Z! b
1 B7 m D) J) w+ L: }1. 排序的基本概念8 K) U2 s7 a5 r i: O% H
假定排序对象为若干记录组成的一个集合,每个记录包含若干个字段,选取其中一个或多个字段为排序码。我们暂时假设排序码的类型为整数类型。
+ q" S. ~5 k6 A' ~ “正序”序列:待排序序列正好符合排序要求。
: R0 P- m" v, ` “逆序”序列:把待排序序列逆转过来,正好符合排序要求。
' Y$ ~. p& c! ]$ j 排序的稳定性:排序码相同的记录经过排序后相对次序保持不变,则这种排序方法称为是“稳定的”,否则是不稳定的。. P( A' `8 X/ R6 B+ e; V1 `' e, ~
2. 分类% E3 O4 W1 ^, P( R
按排序中涉及的存储器不同
( D, h5 O+ d( M4 T9 ` 1)内部排序是把待排数据元素全部调入内存中进行的排序。
8 p8 T2 z5 w6 D, T" | 2)外部排序是因数量太大,把数据元素分批导入内存,排好序后再分批导出到磁盘和磁带外存介质上的排序方法。
4 J5 k0 C2 f! l6 X# X 按照排序方法分类7 R) V! H0 c% u5 Y# L9 x0 K
1)插入排序:直接插入、二分法插入、表插入、Shell排序
/ d* y) y9 D C9 X. F1 W 2)选择排序:直接选择、堆排序# a) p2 M! h& j& U# [
3)交换排序:冒泡排序、快速排序
# N) f, R+ N0 Q! U% Z3 e: Z 4)分配排序:基数排序
* s D% W, [# d 5)归并排序:二路归并排序& a0 t8 a( c$ ?2 M# g- c* o
3、排序算法的评价& h0 }2 n/ _7 W- h% @
1)时间复杂度:分析记录关键字的比较次数和记录的移动次数 (重要评价标准)6 x- Z( h$ j2 e# u S
2)空间复杂度:算法中使用的内存辅助空间
. q. P; B y4 _ {( [ 3)排序的稳定性 {7 y9 z! q5 z! ^+ \
4)算法本身的复杂程度- W: ?; J0 n1 R ^$ `$ b
6 `2 S* e5 U8 i# X8 I0 ]
一、选择排序与堆排序! _+ W# @+ K9 y7 s
1.直接选择排序: N+ X* W9 D0 F& s
思路比较简单:即依次从剩余记录中选取最小的
4 n( Q6 L; a" V& w& X2.堆排序! q; V. A/ H% l
- r( f$ W. x K% r w( k
利用堆的思想,建立一个最大堆,把堆顶的元素(最大值)拿掉,再重新建堆,依次递归 |
|