数据结构排序_第1页
数据结构排序_第2页
数据结构排序_第3页
数据结构排序_第4页
数据结构排序_第5页
已阅读5页,还剩159页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第9章 排序 2 目目 录录 9.4 选择排序391 基本概念基本概念 排序排序:是计算机程序设计中的一项重要操作,其功能是指是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合或序列重新排列成一个按数据元素某个数据一个数据元素集合或序列重新排列成一个按数据元素某个数据项值有序的序列。项值有序的序列。 排序码排序码(关键码关键码):排序依据的数据项。排序依据的数据项。 稳定排序稳定排序:排序前与排序后相同关键码元素间的位置关系,排序前与排序后相同关键码元素间的位置关系,保持一致的排序方法。保持一致的排序方法。 不稳定排序不稳定排序:排序前与排序后相同关键码元素间的相对位置排序前与排序

2、后相同关键码元素间的相对位置发生改变的排序方法。发生改变的排序方法。 排序分为两类:排序分为两类: (1)内排序内排序:指待排序列完全存放在内存中所进行的排序。指待排序列完全存放在内存中所进行的排序。内排序大致可分为五类:插入排序、交换排序、选择排序、归内排序大致可分为五类:插入排序、交换排序、选择排序、归并排序和分配排序。本章主要讨论内排序。并排序和分配排序。本章主要讨论内排序。 (2)外排序:外排序:指排序过程中还需访问外存储器的排序。指排序过程中还需访问外存储器的排序。 为了以后讨论方便,我们直接将排序码写成一个一维数组为了以后讨论方便,我们直接将排序码写成一个一维数组的形式,并且在没有

3、声明的情形下,所有排序都按排序码的值的形式,并且在没有声明的情形下,所有排序都按排序码的值递增排列。递增排列。49.2 9.2 插入排序插入排序 基本思想:每次将一个待排序的元素,按其关基本思想:每次将一个待排序的元素,按其关键字的大小插入到前面已经排好序的子文件的适键字的大小插入到前面已经排好序的子文件的适当位置,直到全部记录插入完成为止。当位置,直到全部记录插入完成为止。 9.2.1 直接插入排序直接插入排序 直接插入排序的基本思想是:把直接插入排序的基本思想是:把n个待排序的元素个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包看成为一个有序表和一个无序表,开始时有序表中只包

4、含一个元素,无序表中包含有含一个元素,无序表中包含有n-1个元素,排序过程中个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。适当位置,使之成为新的有序表。5 例如,例如,n=6,数组,数组R的六个排序码分别为:的六个排序码分别为:17,3,25,14,20,9。它的直接插入排序的执行过程如下:。它的直接插入排序的执行过程如下: 1 2 3 4 5 6 初始状态 (17 ) 3 25 14 20 9 第一次

5、插入 (3 17 ) 25 14 20 9 第二次插入 (3 17 25 ) 14 20 9 第三次插入 (3 14 17 25 ) 20 9 第四次插入 (3 14 17 20 25 ) 9 第五次插入 (3 9 14 17 20 25) 直接插入排序举例直接插入排序举例6void D-InsertSort(datatype R ,int n)/*待排序的待排序的n个元素放在数组个元素放在数组R中,用直接插入法进行排序中,用直接插入法进行排序*/ for ( i=2; i=n; i+) /*i控制第控制第i-1次插入次插入,最多进行最多进行n-1次插入次插入*/ if (Ri.keyRi-1

6、.key) /*小于时小于时,需将需将Ri插入有序表插入有序表*/ R0=Ri; /*为统一算法设置监视哨为统一算法设置监视哨*/ for ( j=i-1; R0.keyRj.key;j-) Rj+1=Rj; / /* *元素后移元素后移* */ / Rj+1= R0; / /* *将放在将放在R0R0中的第中的第i i个元素插入到有序表中个元素插入到有序表中* */ / 直接插入排序算法直接插入排序算法7直接插入排序的效率分析直接插入排序的效率分析 首先从空间来看,它只需要一个元素的辅助空首先从空间来看,它只需要一个元素的辅助空间,用于元素的位置交换。从时间分析,首先外层间,用于元素的位置交

7、换。从时间分析,首先外层循环要进行循环要进行n-1次插入次插入, 每次插入最少比较一次每次插入最少比较一次(正序正序), 移动移动0次次;最多比较最多比较i次次(包括同监视哨包括同监视哨R0的比较的比较),移移动动i1次次(逆序逆序)(i=2,3,n)。因此,。因此,直接插入排序的直接插入排序的时间复杂度为时间复杂度为O(n2)。 直接插入算法的元素移动是顺序的,直接插入算法的元素移动是顺序的,该方法是该方法是稳定的稳定的。89.2.2 9.2.2 希尔排序希尔排序( (缩小增量排序缩小增量排序) ) 希尔排序的基本思想希尔排序的基本思想:先将整个待排元先将整个待排元素序列分割成若干个子序列(

8、由相隔某个素序列分割成若干个子序列(由相隔某个“增增量量”的元素组成的)分别进行直接插入排序,的元素组成的)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序近最好情况),效率是很高的,因此希尔排序在时间效率上有较大提高。在时间效率上有较大提高。9 八个元素的关键码分别为:八个元素的关键码分别为:91,67,35,62,29,72,46,57,希

9、尔排序算法的执行过程为:,希尔排序算法的执行过程为: 91 67 35 62 29 72 46 57 初 始 状 态 , d1=4 29 57 35 62 46 67 91 72 第 二 趟 结 果 , d3=1 29 35 46 57 62 67 72 91 第 三 趟 结 果 29 67 35 57 91 72 46 62 第 一 趟 结 果 ,d2=2 希尔排序过程举例希尔排序过程举例10希尔排序算法void ShellSort(datatype R,int d,int t) /* 按增量序列按增量序列d0、 d1、 d2、 dt-1对顺序表对顺序表R1、 R2、 、 Rn作希尔排序作希

10、尔排序 , 注意注意d0、 d1、 d2、 dt-1 除除1之外不能有公因子,且之外不能有公因子,且dt-1必须为必须为1 */ for(k=0;kt;k+) ShellInsert(R,dk); void ShellInsert(datatype R,int dk)/* 对顺序表对顺序表R1、 R2、 、 Rn进行一趟插入排序,进行一趟插入排序,dk为增量为增量 、步长、步长 */ for(i=dk+1;i=n;i+) if( Ri.key0)&(R0.keyRj.key);j=j-dk) Rj+dk=Rj; /* 记录后移记录后移 */ Rj+dk=R0; /* 插入到正确位置插入

11、到正确位置 */ 11希尔排序的效率分析 虽然我们给出的算法是三层循环,最外层循环为log2n数量级,中间的for循环是n数量级的,内循环远远低于n数量级,因为当分组较多时,组内元素较少;此循环次数少;当分组较少时,组内元素增多,但已接近有序,循环次数并不增加。因此,希尔排序的时间复杂性在O(nlog2n)和O(n2 )之间,大致为O(n1. 3)。 由于希尔排序对每个子序列单独比较,在比较时进行元素移动,有可能改变相同排序码元素的原始顺序,因此希尔排序是不稳定的。129.3 交换排序交换排序 主要是通过排序表中两个记录关键码的比较,若与排序主要是通过排序表中两个记录关键码的比较,若与排序要求

12、相逆(不符合升序或降序),则将两者交换。要求相逆(不符合升序或降序),则将两者交换。9.3.1 冒泡排序冒泡排序 冒泡排序的基本思想:冒泡排序的基本思想:通过对待排序序列从前向后,依通过对待排序序列从前向后,依次比较相邻元素的排序码,若发现逆序则交换,使排序码较次比较相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移向后部。大的元素逐渐从前部移向后部。 因为排序的过程中,各元素不断接近自己的位置,如果因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志排序过

13、程中设置一个标志swap判断元素是否进行过交换。从判断元素是否进行过交换。从而减少不必要的比较。而减少不必要的比较。130 1 2 3 4 5 6 7 849493838656597977676131327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。

14、若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序140 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n -

15、1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列

16、将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序150 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一

17、趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序160 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟

18、。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49

19、、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序170 1 2 3 4 5 6 7 849384938656597977676131327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程

20、:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序180 1 2 3 4 5 6 7 849384938656576977697131327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟

21、,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65

22、、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序190 1 2 3 4 5 6 7 849384938656576977697131327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元

23、素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序200 1 2 3 4 5 6 7 849384938656576977613971327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,

24、针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76

25、、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序210 1 2 3 4 5 6 7 849384938656576977613971327274949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较

26、两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序220 1 2 3 4 5 6 7 849384938656576977613271327974949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1

27、至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27

28、、49 用起泡排序的方法进行用起泡排序的方法进行排序排序230 1 2 3 4 5 6 7 849384938656576977613271327974949冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元

29、素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序240 1 2 3 4 5 6 7 849384938656576977613271327499749 冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个

30、个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用

31、起泡排序的方法进行用起泡排序的方法进行排序排序250 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素

32、开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序260 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟

33、。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列

34、 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序270 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两

35、个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序280 1 2 3 4 5 6 7 8384965761327499738496576132749973849657613274997冒泡排序的具体过程 若若序列中有序列中有

36、n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任

37、何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序290 1 2 3 4 5 6 7 8384965761327499738496576132749973849651376274997冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元

38、素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序300 1 2 3 4 5 6 7 83849657613274997384965761327499738496513762

39、74997冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束

40、条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序310 1 2 3 4 5 6 7 8384965761327499738496576132749973849651327764997冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,

41、针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序320 1 2 3 4 5 6 7 838496576132749973

42、8496576132749973849651327764997冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素

43、。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序330 1 2 3 4 5 6 7 8384965761327499738496576132749973849651327497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至

44、Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序340 1 2 3

45、4 5 6 7 8384965761327499738496513274976973849651327497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位

46、置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序350 1 2 3 4 5 6 7 8384965761327499738496513274976973849651327497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第

47、元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法

48、进行用起泡排序的方法进行排序排序360 1 2 3 4 5 6 7 8384965761327499738496513274976973849651327497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个

49、相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序370 1 2 3 4 5 6 7 8384965761327499738496513274976973849136527497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1

50、 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、

51、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序380 1 2 3 4 5 6 7 8384965761327499738496513274976973849136527497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。

52、若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序390 1 2 3 4 5 6 7 8384965761327499738496513274976973849132765497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通

53、常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程

54、中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序400 1 2 3 4 5 6 7 8384965761327499738496513274976973849132765497697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一

55、趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序410 1 2 3 4 5 6 7 8384965761327499738496513274976973849132749657697冒泡

56、排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:

57、在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序420 1 2 3 4 5 6 7 8384965761327499738491327496576973849132749657697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对

58、第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序430 1 2 3 4 5 6 7 8384965761327499738491327

59、496576973849132749657697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个元素进行。 第第 n-1 趟,针趟,针对第对第 R1 至至 R2 个元素进行。个元素进行。 每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的每一趟进行的过程:从第一个元素开始,比较两个相邻的元素。若相邻的元素的相对位置不正确元素的相对位置不正确,则进行交换;否则继续比较下面两个相邻的元素。则进行交换;

60、否则继续比较下面两个相邻的元素。 结束条件结束条件:在任何一趟进行过程中,未出现交换。在任何一趟进行过程中,未出现交换。 如如: 将序列将序列 49、38、65、97、76、13、27、49 用起泡排序的方法进行用起泡排序的方法进行排序排序440 1 2 3 4 5 6 7 8384965761327499738491327496576973813492749657697冒泡排序的具体过程 若若序列中有序列中有 n 个元素,通常进行个元素,通常进行 n - 1 趟。第趟。第 1 趟,针对第趟,针对第R1 至至Rn个个元素进行。第元素进行。第 2 趟,针对第趟,针对第 R1 至至 Rn1 个元素进行。个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论