排序系统 c语言程序设计,c语言程序设计(排序算法).docx
PAGE
PAGE #
PAGE
PAGE #
A
A
■
号
2014-2015学年第2学
《高级语言程序设计》
课程设计报告
题目:排序算法
专业:
班级:
姓名:
指导
教师:
成绩:
计算机与信息工程系
2015年3月26日
PAGE
PAGE #
PAGE
PAGE #
引言
伴随着社会的发展,数据也变得越来越庞大。如何将庞大的数据进行很好 的排序,使用户更加方便的查找资料,成了一件越来越重要的问题。对于程序员 来说,这将是一个挑战。
经常查找资料的朋友都会知道,面对海量的资料,如果其查找资料没有进 行排疗:,那么其查找资料将会是一家非常痛苦的事惜。针对这一问题,我们自此 通过一个课程设计来解决它。
理论上排序算法有很多种,不过本课程设计只涉及到三种算法。这三种算 法包括:冒泡排序,选择排序,直接插入排序。
本课程设计通过对这三种算法的运行情况进行对比,选择最优秀的算法出 来。希望通过我的努力能解决一些问题,带来一些方便。
需求分析
本课程题H是排疗:算法的实现,山于各方面的原因,本科程设计一共需要 设计三种排序算法。这三种算法包括:冒泡排序,选择排序,直接插入排序。三 种排序算法各有独到之处,因此我们要通过各种调试分析来比较其优劣长短。
由于使用的调试软件及操作系统不一样。因此个别程序在不同的软件上可 能会报错。
本课程软件运行的的操作系统为Windows7 64位操作系统。所使用的软件 为 Microsoft Visual C++6. 0 以及 Turbo C2. 0
第一章程序内容及要求
1.1冒泡排序
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的 排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序 错误就把他们交换过来。走访数列的工作是盪复地进行直到没有再需要交换,也 就是说该数列已经排序完成。这个算法的名字山来是因为越大的元素会经山交换 慢慢“浮”到数列的顶端,故名。
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数 放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放 前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继 续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的 数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第 3个数的交换,使得笫1个数不再小于笫2个数),将小数放前,大数放后,一 直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒 数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此 下去,重复以上过程,直至最终完成排序。用二重循环实现,外循环变量设为i, 内循环变量设为j。假如有10个数需要进行排序,则外循环重复9次,内循环 依次重复9, 8,1次。每次进行比较的两个元素都是与内循环j有关的,
它们可以分别用a[j]和a[j+l]标识,i的值依次为1,2,..., 9,对于每一个i,j 的值依次为1,2,... 10-io冒泡排序算法的性能
1.2选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放 在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳 定的排序方法。
基本思想:
n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:
初始状态:无序区为R[l.. n],有序区为空。
第1趟排序在无序区R[l..n]中选出关键字最小的记录R[k],将它与无 序区的第1个记录R[l]交换,
使R[l.. 1]和R[2.. n]分别变为记录个数增加1个的新有序区和记录个数减 少1个的新无序区。 ③
第i趟排序笫i趟排序开始时,当前有序区和无序区分别为R[l.. i-l]和 R(lWiWn -1)。
该趟排序从当前无序区中选出关键字最小的记录R[k],将它与无序区的笫 1个记录R交换,
使R[l.. i]和R分别变为记录个数增加1个的新有序区和记录个数减少1个 的新无序区。
这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序 结果。
选择排序法的笫一层循环从起始元素开始选到倒数第二个元素,主要是在每 次进入的第二层循环之前,
将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比 这个最小位置处的元素更小的
元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后, 如果临时变量改变,则说明,
有比、"|前外层循环位置更小的元素,需要将这两个元素交换
1.3插入排序
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一 个数,但要求插入后此数据序列仍然有序,这个时候
排序系统 c语言程序设计,c语言程序设计(排序算法).docx相关推荐
- 排序系统 c语言程序设计,c语言程序设计(排序算法).doc
. . . . 学号 20 2014-2015学年 第2学期 <高级语言程序设计> 课程设计报告 题目: 排序算法 专业: 班级: 姓名: 指导教师: 成绩: 计算机与信息工程系 2015 ...
- 机票退订c语言程序,c语言程序设计告飞机票预订系统.doc
c语言程序设计告飞机票预订系统 目录 目录i 1课程设计的目的1 2需求分析1 2.1设计一个飞机订票系统,完成以下功能1 2.2该系统中用到的数据结构1 3概要设计2 3.1总体功能模块2 3.1. ...
- c语言选择排序法程序设计,C语言基础之选择排序算法和代码
在利用C语言进行编写程序的过程中,我们会常常通过算法及其代码来进行相关程序的编写工作.今天课课家笔者先给大家介绍C语言算法中的选择排序算法以及代码.那么到底什么是选择排序算法呢?下面由笔者慢慢道来. ...
- 成绩排序的c语言算法,成绩排序系统(练习排序算法和复习C语言)
成绩排序系统(练习排序算法和复习C语言) 实验一 一.实验目的 1.回顾C语言中的输入.输出及结构体等相关知识点: 2.回顾函数的使用: 3.掌握插入排序.交换排序.选择排序中的常用排序的算法思想: ...
- c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt
C语言程序设计第3版,第6章函数程序设计 C语言程序设计 第6章 函数程序设计 第6章 数组程序设计 6.1 函数概述 6.2 自定义函数示例 6.3 函数定义及调用 6.4 函数嵌套和递归函数 6. ...
- c语言程序设计的水电费问题,C语言程序设计A综合程序设计.pptx
C语言程序设计A综合程序设计.pptx C语言程序设计A实验 综合程序设计,桂林电子科技大学 教学实践部 秦兴国 Email ,Outline,实验目的和实验要求 综合程序设计实验要求 实验提示,实验 ...
- 组数游戏c语言程序报告,c语言组数游戏程序设计实习报告.docx
c语言组数游戏程序设计实习报告 C程序设计实习报告题目:组数游戏学院:机电学院专业:机械设计制造及自动化姓名:张庆远班级学号:20091002559指导教师:薛思清目录第一章:题目要求1.1:要求1. ...
- 好大学在线C语言程序,C/C++程序设计-中国大学mooc-题库零氪
第1讲 C/C++程序设计入门 第1讲单元测验 1.以下________是C/C++合法的标识符. A.char2 B.@x C.int D.7Bw 2.下面的程序,对于输入:2 9 15,输出的结果 ...
- c语言程序设计和python程序设计、什么简单_飞快学 – 程序设计C、JAVA和Python
飞快学的文章 2年前 (2018-10-12)495浏览 一.实验目的 了解正则表达式的作用:了解Python中常见的正则函数:了解常见的正则模式. 二.实验内容 正则表达式:正则表达式是由美国数学家 ...
最新文章
- 基于Mysql主从同步的读写分离
- 关于AJAX访问数据库不能及时获得更新数据的问题
- jquery ajax error函数和及其参数详细说明
- 程序员8大终极杀器,你get了几个?
- 在一个Java版本上运行Eclipse IDE,但在另一个Java版本上运行
- iptables 一些有用的规则
- 禁用sslv3协议linux,SSLv3协议漏洞修复方法
- 程序4-1 对每个命令行参数打印文件类型
- 删除Windows下的Linux系统
- ArcGISEngine二次开发(2):地图制图
- 未能写入输出文件拒绝访问
- 互联⽹名词⼤全——商业模式篇
- windows 2008下载地址及版本介绍
- 程序员水平难判断?程序员的6大等级,赶紧对号入座吧!
- 目录扫描暴力破解网站管理员密码
- opencv实例三:播放AVI格式视频
- 电容式触摸感应技术原理之自容式触摸按键电极设计建议(1)
- 设置input框只能输入数字或者只能输入英文
- 私域流量运营平台有哪些?
- SitePoint播客#94:新年快乐!
热门文章
- 大数据分析有哪些技巧
- 大数据可视化设计需遵守什么原则
- 时间序列经济python_(13)Python初入坑之时间序列基础内容
- python压缩数据数组长度_python – 如何解压缩字节数组中的gzipped数据?
- bcb image 动态大小_论车载音箱系统Limiter(限幅器)Threshold与Image(声像)稳定度的关系...
- 传统版生产者消费者模式2.0
- Android API级别、代号、发布时间及平台亮点整理
- [转载]测试程序执行时间
- Easy Recovery帮你解决数据丢失的苦恼
- 配置Mac自带的Apache http服务器