北航计算机软件技术基础实验报告计软实验报告——冒泡排序和快速排序要点.docxVIP

北航计算机软件技术基础实验报告计软实验报告——冒泡排序和快速排序要点.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北航计算机软件技术基础实验报告计软实验报告——冒泡排序和快速排序要点.docx

实验报告实验名称冒泡排序和快速排序班级学号姓名成绩实验概述: 【实验目的及要求】 实验目的通过编程程序达到熟悉并掌握教材中所介绍的几种排序方法。2. 实验内容1)随机产生20位整数2)输入序列,编写程序,按下列排序方法将序列从小到大排序并输出。1.冒泡排序2.快速排序3)纪录每种方法比较次数和移动次数3. 实验步骤和要求同上【实验原理】冒泡排序冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。快速排序设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换;4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换;5)重复第3、4步,直到i=j; (3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i, j指针位置不变。另外,i==j这一过程一定正好是i+或j-完成的时候,此时令循环结束)。【实验环境】(使用的软硬件)处理器英特尔 Core i5-4200M @ 2.50GHz 双核内存 4 GB ( 记忆科技 DDR3L 1600MHz )操作系统 Windows 10 专业版 64位 ( DirectX 12 )编译环境 Dev-C++ 5.6.1编译语言 C实验内容:【实验方案设计】1. 利用rand()函数生成20个随机数,并放到两个数组中分别用于冒泡排序和快速排序2.利用比较和交换,每次讲一个最大的元素放到数组末尾,实现冒泡排序3.在每次快速排序的算法中,先设置一个基准值,利用头指针和尾指针轮流比较数组中的元素,若遇到不属于low或high的元素则交换到另一个组中去,最后将基准值放入首尾指针相交的位置上。利用递归调用实现对整个数组的快速排序算法。4.整理实验结果,写出实验报告【实验过程】(实验步骤、记录、数据、分析)实验一:源代码:/*实验3:冒泡排序和快速排序1.随机产生20位整数2.输入序列,编写程序,按下列排序方法将序列从小到大排序并输出。 (1)冒泡排序 (2)快速排序3.纪录每种方法比较次数和移动次数*/#includestdio.h#includestdlib.h#defineN 20//定义用于比较和交换计数的全局变量staticint compare, move;int main(){int data1[N], data2[N];int i;void bubbleSort(int[20]);void quickSort(int[20], int, int);//创建两个相同的数组用于两种排序方法for (i = 0; iN; i++){data1[i] = rand() % 100 + 1;data2[i] = data1[i];}printf(The original array:\n);for (i = 0; iN; i++)printf(%d , data1[i]);//调用冒泡排序法bubbleSort(data1);//计数器置零compare = 0;move = 0;//调用快速排序法quickSort(data2, 0, N - 1);printf(Quicksort completed!The results are as follows:\n);for (i = 0; iN; i++)printf(%d , data2[i]);print

文档评论(0)

zhangningclb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档