排序算法实验报告讲解Word格式.docx
- 文档编号:13630730
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:28
- 大小:212.69KB
排序算法实验报告讲解Word格式.docx
《排序算法实验报告讲解Word格式.docx》由会员分享,可在线阅读,更多相关《排序算法实验报告讲解Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
Q(J
不稳定
选择
程接选择
。
卅)
og).1
堆排序
Otnlcgjn)
[Ofniogjn)
O(nlogjn)
O(i)
交换1
河泡排序
OOT
0
(1)
稳定
排库
怏速排序
00也即)
CXnlo^n)
曲)
O(nlc庇n)
归并菲序
Ofnlogji)|
Oftilog2n)J
OCnlo^n)
O(n)]
稳罡
基数托序
o(d(n-n))
O(d(n+rd))
0(昭明
O(rd+n)
稳宦
曲鞅
段携序的复杂度中.K弋表关键字的基薮,社代表畑n代表关键字的个数。
比较时间复杂度函数的情况:
时间复杂度函数0(n)的增长情况
不同大小揄入的运和时间
fl
煽n
nlogn
卅
3RSM1
0,01ft
0.02
flWp
O.SIF
0.26M
16
4iw
0■叫.
Q.Kjj
4JCjd
65-5^
32
0-03fi
0.
1,02^
32卄
4.29mw
蓟
friwn
0r06
6珈
262g
5.83iwii
0-13fl
特•甥J」
O.Otw
沪g
256
ooiF
O.OG^tc
icf"
cent
512
0.01m
a.Jiji
坤血pl
2112.14M
0.13
JQ1HEl
0-01P
22-Sp:
O.a0
l.a?
wr
唤
doip
4.IDf
i9-|5pi
Of02ffl€C
8.40m
ltfn*M
0.01抖
106.50^
(LO7nc
1.|5radn
0.01fL
ICJilji
22S„3*f
0,27we
1.22Ewk
vf*1仙
32删
0.02^
*41.52#
1f07BBC
9.77hn
I0*1r^li
6553fi
Q.02^i
1娅如
O.OC?
min
3.3cbysi
mo?
i
d.OQp
131.or?
0„2$min
26daya
1胪用El
茁2L44
0-02
262;
14M
4710.6”
1.15min
7™ths
£
24258
0.02F
5241.29^
4.5(mon
4.6
;
048刑
1啊-出广1
30和
1$D3rcnn
37yean
堆:
rwr为jfl旌]且沟老■«
min为5MKInn为小时$df沪为天丫mriUu为月rlwimi为年,呦1为世td
所以对n较大的排序记录。
一般的选择都是时间复杂度为0(nlog2n)的排序方法。
时间复杂度来说:
(1)平方阶(0(n2))排序
各类简单排序:
直接插入、直接选择和冒泡排序;
⑵线性对数阶(0(nlog2n))排序
快速排序、堆排序和归并排序;
(3)0(n1+§
))排序,§
是介于0和1之间的常数。
希尔排序
⑷线性阶(0(n))排序
基数排序,此外还有桶、箱排序。
说明:
当原表有序或基本有序时,直接插入排序和冒泡排序将大大减少比较次数和移动记录的次数,时间复杂度可降至0(n);
而快速排序则相反,当原表基本有序时,将蜕化为冒泡排序,时间复杂度提高为0(n2);
原表是否有序,对简单选择排序、堆排序、归并排序和基数排序的时间复杂度影响不大。
稳定性:
排序算法的稳定性:
若待排序的序列中,存在多个具有相同关键字的记录,经过排序,这些记录的相对次序保持不变,则称该算法是稳定的;
若经排序后,记录的相对次序发生了改变,则称该算法是不稳定的。
稳定性的好处:
排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。
基数排序就是这
样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。
另外,如果排序算法稳定,可以避免多余的比较;
稳定的排序算法:
冒泡排序、插入排序、归并排序和基数排序
不是稳定的排序算法:
选择排序、快速排序、希尔排序、堆排序
四、设计细节
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
我们这里说说八大排序就是内部排序。
八亘接插加非序
插入排序◎增础序
使用内存
选择聊序e
简单选择排序
内部排序
冒泡排序快速排序
-归并排序
基教排序
的存和外村结合1吏用
外部排序
1.插入排序---直接插入排序(StraightInsertionSort)
基本思想:
将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。
即:
先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
要点:
设立哨兵,作为临时存储和判断数组边界之用。
直接插入排序示例:
〔初始关■字]*
(49)
3fi
65
97
76
13
27
49
(3fl)
⑶
49)
(65>
(3B
65)
鉀
76*
(97)
(38
*
97)
爭
(76)
r
97>
is
13)
厂
(13
38
6S
h
(27)
2*7
3R
祐*
?
6
36
S7)
如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。
所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的C
时效分析:
时间复杂度:
O(nA2)
2.插入排序一希尔排序(Shell'
sSor)
希尔排序是1959年由D.L.Shell提出来的,相对直接排序有较
大的改进。
希尔排序又叫缩小增量排序基本思想:
先将整个待排序的记录序列分割成为若干子序列分别进行
直接插入排序,待整个序列中的记录基本有序”时,再对全体记录进行依次直接插入排序。
操作方法:
1.选择一个增量序列tl,t2,…,tk,其中ti>
tj,tk=1;
2.按增量序列个数k,对序列进行k趟排序;
3.每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m的子序列,分别对各子表进行直接插入排序。
仅增量因子为1时,整个序列作为一个表来处理,表长度即为整个序列的长度。
希尔排序的示例:
[初始关鰹字]:
4938977G132?
495S04
4913
11
3B27■
6$49
liI
975S
hi
71J04
-m序结果「
13275504493865餌76
is严y¥
2704B5
111
申4997
二穗排序结果:
三H捧序堵H-
13(M4?
3B2749S5馮9776
0413274949S3657697
算法的实现:
d={n/2,n/4.
我们简单处理增量序列:
增量序列
n/8..…1}n为要排序数的个数
即:
先将要排序的一组记录按某个增量d(n/2,n为要排序数的个数)分成若干组子序列,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量
(d/2)对它进行分组,在每组中再进行直接插入排序。
继续不断缩小增量直至为1,最后使用直接插入排序完成排序。
时效分析:
希尔排序时效分析很难,关键码的比较次数与记录移动次数依赖于增量因子序列d的选取,特定情况下可以准确估算出关键码的比较次数和记录的移动次数。
目前还没有人给出选取最好的增量因子序列的方法。
增量因子序列可以有各种取
法,有取奇数的,也有取质数的,但需要注意:
增量因子中除1外没有公因子,且最后一个增量因子必须为1。
希尔排
序方法是一个不稳定的排序方法。
3.选择排序一简单选择排序(SimpleSelectionSor)
在要排序的一组数中,选出最小(或者最大)的一个数与第
1个位置的数交换;
然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止简单选择排序的示例:
第一趟,从n个记录中找出关键码最小的记录与第一个记录交换;
第二趟,从第二个记录开始的n-1个记录中再选出关键码最小的记录与第二个记录交换;
以此类推••…
第i趟,则从第i个记录开始的n-i+1个记录中选出关键码最小的记录与第i个记录交换,
直到整个序列按关键码有序。
4.选择排序一堆排序(HeapSort)
堆排序是一种树形选择排序,是对直接选择排序的有效改进。
堆的定义如下:
具有n个元素的序列(k1,k2,...,kn),当且仅当满足
J)
时称之为堆。
由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。
若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(或不小于)其子女的值,根结点(堆顶元素)的值是最小(或最大)的。
如:
(a)大顶堆序列:
(96,83,27,38,11,09)(b)小顶堆序列:
(12,36,24,85,47,30,53,91)
初始时把要排序的n个数的序列看作是一棵顺序存储的二叉树
(一维数组存储二叉树),调整它们的存储序,使之成为一个堆,将堆顶元素输出,得到n个元素中最小(或最大)的元素,这时堆的根节点的数最小(或者最大)。
然后对前面(n-1)个元素重新调整使之成为堆,输出堆顶元素,得到n个元素中次小(或次大)
的元素。
依此类推,直到只有两个节点的堆,并对它们作交换,最后得到有n个节点的有序序列。
称这个过程为堆排序。
因此,实现堆排序需解决两个问题:
1.如何将n个待排序的数建成堆;
2.输出堆顶元素后,怎样调整剩余n-1个元
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 算法 实验 报告 讲解