信息奥训班讲义(三)排序.docx
《信息奥训班讲义(三)排序.docx》由会员分享,可在线阅读,更多相关《信息奥训班讲义(三)排序.docx(14页珍藏版)》请在优知文库上搜索。
1、信息奥训班讲义(三)排序排序法一、选择排序se1.ectionsort基本思想:每一步从待排序的数据中选择最小(此处以正序为例,若为反序则正好相反)的数据,依次放在已排好序的子序列的最终,直到全部数据排序完毕。对待排序的记录序列进行11-1遍的处理,第1遍处理是将1.1.n中最小者与1.1.交换位置,第2遍处理是将1.2.n中最小者与U2交换位置,笫i遍处理是将1.i.n中最小者与1.i交换位置。这样,经过i遍处理之后,前i个记录的位置就已经按从小到大的依次排列好了0初始状态128101462第一步排序281014612其次步排序261014812第三步排序268141012第四步排序2681
2、01412第五步排序268101214干脆选择排序的程序如下:ProcedureSort_SeIeCt;VarI,j,k,t:integer;BeginFori:=1ton-1doBeginK:=I;Forj:=i+1.tondoIfakajthenk:=j;Ifk1.thenBegint:=ai;Ai:=ak;k:=t;End:End;End;算法评价:(I)数据比较次数无论数据序列初始状态如何,在第i步排序中选出最小数据,需做n-i次比较。因此,总的比较次数为n(n-1.)2=0(n2);(2)数据的移动次数:当时始数据序列为正序时,移动次数为0.数据序列初态为反序时.,每步排序均要执行交
3、换操作,总的移动次数取最大值3(n-1.)O干脆选择排序的平均时间困难度为O(n2);(1)稳定性分析:干脆选择排序是不稳定的。二、冒泡排序基本思想:冒泡排序是将待排序的数据看成一个个重量不等的气泡,依据轻气泡不能在重气泡之下的原则,从下往上扫描,凡遇违反本原则的状况,就进行一次交换,使轻气泡上浮。如此反复,宜到没有轻气泡在下,重气泡在上为止。12222228126666i1081288814108121010,i614101012122614141414-初第第第第第始一二三四五数步步步步步据排排排排排序序序序序后后后后后冒泡排序的程序如下:Proceduresort_bubb1.e;Var
4、I,j,t:integer;BeginFori:=1ton-1doForj:=ndowntoi+1doIfaj-1.ajthenBegint:=aj-1.;j-1.z=aj;Aj:=t:End;程序2:programmppx;constn=7;vara:array1.nofinteger;1, j,k,t:integer;boo1.:boo1.ean;beginfori:=1tondoread(ai);i:=1;boo1.:=true;whi1.e(in)andboo1.dobeginboo1.:=fa1.se;forj:=ndowntoi+1doifaj-1.ajthenbegint:=aj
5、-1.:aj-1.:=aj:aj:=t:boo1.:=trueend;i:=i+1.;end;fori:=1tondowrite(ai:6);writein;end.程序3:programmppx;constn=7;vara:array1.nofinteger;i,j,k,t:integer:beginfori:=1tondoread(ai);k:=n;whi1.ekdobeginj:=k-1.;k:=0;fori:=1tojdoifaiai+1.thenbegint:=ai;ai:=ai+1.:ai+1.:=t;k:=i;end;end;fori:=1tondowrite(ai:6):wri
6、tein:end.算法评价:(1) 算法的最好时间困难度:若数据的初始状态是正序的,一步扫描即可完成排序,所需的数据比较次数C和数据移动次数均达到最小值:Cmin=n-1Mmin=0;冒泡排序的最好时间困难度为O(n)。2)算法的最坏时间困难度:若数据是反序的,须要进行n-1步排序。每步排序要进行11-i次数据的比较(1.=i=n-i),且每次比较都必需移动数据三次来达到交换数据位置。在这种状况下,比较和移动次数均达到最大值:Cmax=n(n-1)/2=0(n2)Mmax=3n(n-1)/2=0(n2)冒泡排序的最坏时间困难度为0(n2)(3)弊法的平常间困难度为0(n2)虽然冒泡排序不肯定要
7、进行n-1步,但由于它的数据移动次数较多,故平均时间性能比干脆插入排序要差得多。(4)算法稳定性:冒泡排序是就地排序,且它是稳定的。三、插入排序将待排序的数据分成两个区域:有序区和无序区,每次将一个无序区中的数据按其大小插入到有序区中的适当位置,宜到全部无序区中的数据都插入完成为止。经过iT遍处理后,1.1.i7己排好序。第i遍处理仅将1.i插入1.1.iT的适当位置p,原来p后的元素一一向右移动一个位置,使得1.1.i乂是排好序的序列。设待排序的数据有6个,依次为12、8、10,14,6.2.其排序过程如图所示:循环变量I1281014628121014621=38101214621=481
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 奥训班 讲义 排序