C++中级第5讲 排序1.pptxVIP

  • 8
  • 0
  • 约 16页
  • 2024-05-30 发布于广西
  • 举报
C++中级第5讲排序1.pptxC++中级第5讲排序1.pptx

学科竞赛编程教研研究院C++NOIPNOIIOI

1PARTONE认识排序12排序又称“分类。按关键字大小递增或递减的次序,对文件中的全部记录重新排列的过程。排序是计算机程序设计中的种重要运算。分内部排序和外部排序两大类。内部排序中常用的方法有选择排序、冒泡排序、插入排序、哈希排序、快速排序、归并排序等。又称分类。2.排序在生活中的例子一学期成绩排序文件按名称排序

1PARTONE基本思想?动画演示?每一趙从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在待排序的数列的最前面,直到全部待排序的数据元素排完。选择排序

1PARTONE【问题描述】将49,38,65,97,76,13,27,49依据选择排序的思想从小到大排序。【样例输出】1327384949657697选择排序的过程【过程分析】第二步:选出剩下7个数中最小数字和第2个数字交换位置。

1PARTONE第三步:选出剩下6个数中最小数字和第3个数字交换位置第四步:选出剩下5个数中最小数字和第4个数字交换位置第五步:选出剩下4个数中最小数字和第5个数字交换位置

1PARTONE第六步:选出剩下3个数中最小数字和第6个数字交换位置。第七个:选出剩下2个数中最小数字和第7个数字交换位置,最后一个数字已经是最大的数字了,这样得到了排列好的数字列使用选择排序顺序输出.【可题描述】输入n个整数,将n个数按从小到大的顺序输出(n=10000)。【样例输入】84938659776132749【样例输出】1327384949657697选择排序的应用

1PARTONE(1)读入数据存放在a数组中。

(2)在a[1]~a[n]中选择值最小的元素,与第1位置元素进行交换,则把最小值元素放入a[1]中(3)在a[2]~a[n]中选择值最小的元素,与第2位置元素进行交换,则把最小元素放入a[2]中(4)直到第n-1个元素与第n个元素比较排序为止【问题分析】

1PARTONE#includeiostream〉usingnamespacestd;constintMAXN=10001;intmain(){intn,k,i,j;inta[MAXN];cinn;for(i=0;in;i++)cina[i];for(i=0;in;i++){k=i;for(j=i+1;jn;j++){ if(a[j]a[k])k=j;}if(k!=i)swap(a[i],a[k]);}for(i=0;in;i++)coua[i]””;return0;}完整代码

1PARTONE基本思想?从无序序列头部开始,相邻元素进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的部分;下一次继续这个过程,直到所有数据元素都排好序。冒泡排序动画演示?

1PARTONE2.冒泡排序的过程(1)比较相的元素。如果第一个比第二个大(小),就交換他们门两个(2)对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数(3)针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。(4)持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。3.冒泡排序的过程图示【问题描述】使用冒泡排序的方法将数列6,5,3,4,1,2从小到大排序。【样例输出】123456第一步:把6个数中最大的数字放到第6个方格的位置上。

1PARTONE第二步:把剩下5个数中最大的数字放在第5个方格的位置上。第三步:把剩下4个数中最大的数字放在第4个方格的位置上。341256314256312456

1PARTONE132456第四步:把剩下3个数中最大的数字放在第3个方格的位置上。123456第五步:把剩下2个数中较大的数字放在第2个方格的位置上。123456使用冒泡排序顺序输出。【问题描述】输入n个整数,将n个数按从小到大的顺序输出(n=10000)。【样例输入】6653412【样例输出】1234564.冒泡排序应用

1PARTONE【问题分析】具体的实现步骤:(1)读入数据存放在a数组中。(2)比较相邻的前后两个数据,如果

文档评论(0)

1亿VIP精品文档

相关文档