- 3
- 0
- 约6.44千字
- 约 6页
- 2023-05-06 发布于天津
- 举报
排序算法
一、插入排序(InsertionSort)基本思想:
每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据兀素全部插入完为止。
排序过程:
【示例】:
[初始关键字][49]38659776132749
J=2(38)[3849]659776132749
J=3(65)[384965]9776132749
J=4(97)76132749
J=5(76)[3849657697]132749
J=6(13)[133849657697]2749
J=7(27)[13273849657697]49J=8(49)[1327384949657697]ProcedureInsertSort(VarR:FileType);〃对R[1..N]按递增序进行插入排序,R[0]是监视哨〃BeginforI:=2ToN
BeginforI:=2ToNDobeginR[0]:=R[I];J:=I-1;WhileR[0]R[J]DobeginR[J+1]:=R[J];J:=J-1endR[J+1]:=R[0];endEnd;
//依次插入日⑵,…,R[n]//
〃查找R[I]的插入位置〃//将大于R[I]的元素后移〃//插入R[I]////InsertSort//
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
排序过程:
。【示例】:
初始关键字[4938659776132749]第一趟排序后13[38659776492749]第二趟排序后1327[659776493849]第三趟排序后132738[9776496549]第四趟排序49976576]第五趟排序后1327384949[979776]〃对R[1..N]进行直接选择排序////做N-1趟选择排序〃//在当前无序区R[I..N]中选最小的元素R[K]//第六趟排序后132738494976[7697]第七趟排序后13273849497676[97]最后排序结果
〃对R[1..N]进行直接选择排序//
//做N-1趟选择排序〃
//在当前无序区R[I..N]中选最小的元素R[K]//
Begin
forI:=1ToN-1Do
begin
K:=I;
ForJ:=I+1ToNDo
begin
IfR[J]R[K]ThenK:=J
end;
IfKIThen〃交换R[I]和R[K]//
beginTemp:=R[I];R[I]:=R[K];R[K]:=Temp;end;
endEnd.//SelectSort//三、冒泡排序(BubbleSort)基本思想:
两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。
排序过程:
设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上”漂浮”,如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。
【示例】:
49131313131313133849272727272727653849383838383897653849494949497697654949494949137697656565656527277697767676764949497697979797ProcedureBubbleSort(VarR:FileType)/从下往上扫描的起泡排序〃Begin
ForI:=1ToN-1Do//做N-1趟排序//
begin
NoSwap:=True;〃置未排序的标志〃
ForJ:=N-1DownTo1Do//从底部往上扫描〃
begin
IfR[J+1]R[J]Then〃交换元素〃
begin
Temp:=R[J+1];R[J+1:=R[J];R[J]:=Temp;
NoSwap:=False
end;
end;
IfNoSwapThenReturn//本趟排序中未发生交换,则终止算法//endEnd.//BubbleSort//四、计数排序计数排序的思想是若待排序的记录的关键字在一个明显的有限范围内(整数)时,可设计一个数组,出现与数组下标值一样的数,该下标的数组元素值加1,最后扫描整个数组,根据统计的信息给出一个有序数列。
五、快速排序(QuickSort)基本思想:
在当前无序区R[1..H]中任取一个数据元素作为比较的”基准”(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I-1]和R[I+1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而
您可能关注的文档
- 各种安全阀分类与特点及优缺点.docx
- 各行业湿度要求.docx
- 各种食物营养成份表.docx
- 各专业技工工种.docx
- 各个学科的特色.docx
- 各公司医药代表待遇.docx
- 各向异性磁电阻的测量.docx
- 各大IT公司薪资待遇.docx
- 各大外企薪资和待遇水平.docx
- 各层级护士岗位职责与胜任能力.docx
- 滑雪度假村建设开发项目可行性研究报告.docx
- 2025山东药品食品职业学院单招《数学》真题AB卷附答案详解.docx
- 2025山东职业学院单招《数学》综合提升测试卷附参考答案详解【培优】.docx
- 卫生专业技术资格考试康复医学治疗技术(初级(士)107)基础知识复习要点精析.docx
- 2025年企业信用报告_四川海纳恒通工程项目管理有限公司.docx
- 2025年研究方案和可行性分析怎么写.docx
- 2025山西信息职业技术学院单招《数学》常考点试卷带答案详解(综合卷).docx
- 成为世界首个有效发明专利拥有量超500万件国家.docx
- 2025山东英才学院单招《数学》考试彩蛋押题及答案详解【基础+提升】.docx
- 2025山东经贸职业学院单招《数学》练习题附答案详解(综合卷).docx
原创力文档

文档评论(0)