各种排序算法比较.docxVIP

  • 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],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而

文档评论(0)

1亿VIP精品文档

相关文档