计算机课程设计说明说.doc
《计算机课程设计说明说.doc》由会员分享,可在线阅读,更多相关《计算机课程设计说明说.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 南 京 理 工 大 学课程设计报告作 者:张琦学 号:8教学点:苏州市职业大学专 业:机电一体化工程题 目:冒泡排序指导者: 评阅者: 2013年 4月南 京 理 工 大 学课程设计报告评语综合成绩: 指导者评语: 指导者(签字): 年 月 日课 程 设 计 报 告 摘 要摘要:冒泡排序,是指计算机的一种排序方法。冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟
2、:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。本程序采用Microsoft Visual C+ 6.0调试。该排序方法也有一些不足的地方。关键词: 冒泡排序 比较 调试 排序目 次1 引言 12 冒泡排序的实现 12.1 冒泡排序的基本概念 12.2 冒泡排序引例 12.3冒泡排序的流程图及程序代码 23 冒泡排序的调试 43.1 冒泡排序的调试方
3、法 43.2 程序调试 54 冒泡排序的性能分析 64.1 时间复杂度 64.2 空间复杂度 74.3 稳定性 75 冒泡排序的不足 7结论 9致谢 10参考文献11附录A 131 引言在许多程序设计中,我们需要将一个数列进行排序,以方便统计,而冒泡排序一直由于其简洁的思想方法而倍受青睐冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n2),虽然不及堆排序、快速排序,但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。不过,一路、二路归并排序、不平衡二叉树排序的速度均
4、比冒泡排序快,且具有稳定性,但速度不及堆排序、快速排序。冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。因为冒泡排序方法简单,所以得到广泛应用。2 冒泡排序的实现21 冒泡排序的基本概念冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个
5、数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。用二重循环实现,外循环变量设为i,内循环变量设为j。假如有10个数需要进行排序,则外循环重复9次,内循环依次重复9,8,.,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用aj和aj+1标识,i的值依次为1,2,.,9,对于每一个i和j的值依次为1,2,.10-i。22 冒泡排序引例将9,5,2,4四个数用冒泡排序方法进行排序。先把四个数
6、依次存入R1.4数组中,具体排序过程如下图所示:图一第一趟结果:5 2 4 9 最大数9在R4中。图二第二趟结果:2 4 5 9 第二大数数5在R3。图三第一趟结果:5 2 4 9 第三大数4在R2中.以上第一趟比较结果出来一个最大数9,发表放在R4中;第二趟出来次大树5,放在R3中,;四个数进行三趟。其比较过程为相邻两数比较,小的浮上去,大的沉下来。23 冒泡排序的流程图及程序代码2.3.1 冒泡排序的流程图根据冒泡排序的排序过程可得如下的程序流程图:图四2.3.2 冒泡排序的程序本程序的编写采用调用子函数的方法,先定义一个子函数Bubble_Sort(n)实现冒泡排序的功能,在主函数中输入
7、要排序的数字,在调用子函数后实现数字的排序。#include #define MAX 255#define clrscr()#define exit#define getch()int aMAX;void Bubble_Sort(int n) /* a (1.n)是带排序的文件,采用自下向上扫描,对a做冒泡排序*/ int i,j; int exchange; /*交换标志*/ for (i=1;i=i;j-) /*对当前无序区ai.n自下向上扫描*/ if(aj+1aj) /*交换记录*/ a0=aj+1; /*a0不是哨兵,仅做暂存单元*/ aj+1=aj; aj=a0; exchange
8、=1; /*发生了交换,故将交换标志置为真*/ if(!exchange)/*本趟排序未发生交换,提前终止算法*/ return;void main() int i,n; clrscr(); puts(Please input total element number of the sequence:); scanf(%d,&n);if(nMAX) printf(n must more then 0 and less then %d.n,MAX); exit(0);puts(please input the elemengt one by one:);for(i=1;i=n;i+) scanf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 课程设计 说明
限制150内