2、 J=6(13)[133849657697]2749 J=7(27)[13273849657697]49 J=8(49)[1327384949657697]ProcedureInsertSort(VarR:FileType);//对R[1..N]按递增序进行插入排序,R[0]是监视哨// Begin forI:=2ToNDo //依次插入R[2],...,R[n]// begin R[0]:=R[I];J:=I-1; WhileR[0]
3、[I]的插入位置// begin R[J+1]:=R[J]; //将大于R[I]的元素后移// J:=J-1 end R[J+1]:=R[0]; //插入R[I]// end End; //InsertSort// 二、选择排序1.基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。2.排序过程:【示例】: 初始关键字[493
5、 Begin forI:=1ToN-1Do //做N-1趟选择排序// begin K:=I; ForJ:=I+1ToNDo //在当前无序区R[I..N]中选最小的元素R[K]// begin IfR[J]IThen //交换R[I]和R[K]// beginTemp:=R[I]
6、;R[I]:=R[K];R[K]:=Temp;end; end End. //SelectSort// 三、冒泡排序(BubbleSort)1.基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。2.排序过程: 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮",如此反复进行
7、,直至最后任何两个气泡都是轻者在上,重者在下为止。【示例】:49131313131313133849272727272727653849383838383897653849494949497697654949494949137697656565656527277697767676764949497697979797ProcedureBubbleSort(VarR:FileType)//从下往上扫描的起泡排序//Begin ForI:=1ToN-1Do //做N-1趟排序// begin NoSwap:=Tr
8、ue; //置未排序的标志// ForJ:=N-1DownTo1Do //从底部往上扫描// begin IfR[J+1]