计算机应用基础课件1.6排序.ppt
《计算机应用基础课件1.6排序.ppt》由会员分享,可在线阅读,更多相关《计算机应用基础课件1.6排序.ppt(46页珍藏版)》请在优知文库上搜索。
1、第第 1 章章 数据结构数据结构 主要内容1.1 基本数据结构与算法基本数据结构与算法 1.2 线性表线性表 1.3 栈和队列栈和队列1.4 树和二叉树树和二叉树 1.5 查找查找1.6 排序排序ABCDEFG10658651.6 排序 排序又称分类,是计算机程序设计中一个重要运算,它的功能是将一组任意序列的数据元素,进行按关键字由大到小的顺序(降序)排列或按由小到大的顺序(升序)排列。排序的对象:这些数据元素可以是数值型,也可以为字符排序的对象:这些数据元素可以是数值型,也可以为字符型。若为数值型,则按数值大小排列;若为字符型,则按型。若为数值型,则按数值大小排列;若为字符型,则按其其ASC
2、IIASCII码的顺序排列。码的顺序排列。排序的依据:在实际应用中,参加排序的数据元素有时不排序的依据:在实际应用中,参加排序的数据元素有时不是单个数据项,而是由多个数据项组成的记录。此时排序应是单个数据项,而是由多个数据项组成的记录。此时排序应按照关键字的大小进行。所谓关键字是指记录中的某个数据按照关键字的大小进行。所谓关键字是指记录中的某个数据项,用它可以标识一个记录。若此关键字可以唯一地标识一项,用它可以标识一个记录。若此关键字可以唯一地标识一个记录,则称此关键字个记录,则称此关键字为主关键字为主关键字;反之,把用以识别若干;反之,把用以识别若干记录的关键字称为记录的关键字称为次关键字。
3、次关键字。学号学号姓名姓名系别系别住址住址电话电话981111李洪李洪机械机械六舍六舍5371111982111王刚王刚电子电子四舍四舍5372111983211王将王将计算机计算机五舍五舍5373211983212张强张强机械机械六舎六舎5372221排序的稳定性:排序的稳定性:在待排序的记录中,若存在多个关键在相同在待排序的记录中,若存在多个关键在相同 的记录,经过排序后,这些具有相同关键在的记录,经过排序后,这些具有相同关键在 的记录之间的相对次序发生变化,则称这种的记录之间的相对次序发生变化,则称这种 排序方法是稳定的;否则,是不稳定的。排序方法是稳定的;否则,是不稳定的。排序的分类:
4、内部排序与外部排序排序的分类:内部排序与外部排序 内部排序内部排序:整个排序过程整个排序过程完全在内存中完全在内存中进行进行.外部排序外部排序:由于待排序记录数据量太大由于待排序记录数据量太大,内存无法容纳内存无法容纳 全部数据全部数据,排序需要排序需要借助外部存储设备借助外部存储设备才能才能 完成完成.排序算法评价:排序算法评价:算法执行时间算法执行时间(最好、最差及平均情况最好、最差及平均情况)、需要附加空间大小、需要附加空间大小1.6 排序插入排序的基本思想:插入排序的基本思想:1.6.2 插入排序插入排序插入排序三种方法插入排序三种方法1.直接排序直接排序:认可第认可第1 1个记录已排
5、好序,然后将第个记录已排好序,然后将第2 2个到第个到第n n个个记录依次插入到前面已排好序的记录组成的文件中。记录依次插入到前面已排好序的记录组成的文件中。2.折半插入排序折半插入排序:折半插入排序在寻找插入位置时,不是逐个折半插入排序在寻找插入位置时,不是逐个比较而是利用比较而是利用折半查找的原理寻找插入位置折半查找的原理寻找插入位置。待排序元素越。待排序元素越多,改进效果越明显。多,改进效果越明显。3.希尔排序希尔排序:将整个无序序列分割成若干个子序列分别进行直将整个无序序列分割成若干个子序列分别进行直接插入排序接插入排序.将将待排序待排序文件中的记录,逐个按其排序码值的大小插文件中的记
6、录,逐个按其排序码值的大小插入到已入到已排好序排好序的若干个记录组成的文件中的适当位置,保的若干个记录组成的文件中的适当位置,保持新文件有序。持新文件有序。1.直接插入排序直接插入排序:思路:思路:认可第认可第1 1个记录已排好序,然后将第个记录已排好序,然后将第2 2个到第个到第n n个记录个记录依次插入到前面已排好序的记录组成的文件中。依次插入到前面已排好序的记录组成的文件中。具体过程具体过程(第第i i个记录个记录R Ri i插入到前面插入到前面i-1i-1个已排好序的记录中个已排好序的记录中)将将R Ri i的排序码与前面已排好序的排序码从的排序码与前面已排好序的排序码从右向左右向左依
7、次比依次比较,找到较,找到R Ri i应插入的位置;将该位置以后直到应插入的位置;将该位置以后直到R Ri-1i-1各记录顺各记录顺序后移序后移,空出位置插入空出位置插入R Ri i。1.6.2 插入排序插入排序 直接插入排序直接插入排序:次数次数i r0 r1 r2 r3 r4 r5 r6 r7 r8 (49)39 66 96 76 11 37 50 (39 49)66 96 76 11 37 50i=239(39 49 66)96 76 11 37 50i=366(39 49 66 96)76 11 37 50i=496(39 49 66 76 96)11 37 50i=576(11 39
8、 49 66 76 96)37 50i=611(11 37 39 49 66 76 96)50i=737(11 37 39 49 50 66 76 96)i=850对于有对于有n个个数据元素的数据元素的待排序列,待排序列,插入操作要插入操作要进行进行n-1次次./*对对N个整数进行升序排序个整数进行升序排序*/for(i=1;i=0;k-)/寻找插入位置寻找插入位置if(aiak)break;/插入到第插入到第k个位置的后面个位置的后面 temp=ai;for(j=i-1;jk;j-)/向后移动向后移动 aj+1=aj;aj+1=temp;./*改进前面的算法改进前面的算法*/for(i=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 应用 基础 课件 1.6 排序