.

.

.

.

学号

20

2014-2015学年 第2学期

《高级语言程序设计》

课程设计报告

题目:

排序算法

专业:

班级:

姓名:

指导教师:

成绩:

计算机与信息工程系

2015年3月26日

.

.

.

目 录

TOC \o "1-3" \h \u 30 引 言 1

11217 需求分析 1

16740 第一章 程序内容及要求 1

14233 1.1 冒泡排序 1

28001 1.2 选择排序 2

2881 1.3 插入排序 3

6821 第二章 概要设计 4

32099 2.1冒泡排序 4

32412 2.2选择排序 5

10756 2.3插入排序 6

22595 第三章 程序的比较及其应用 7

17174 3.1时间复杂度 7

19737 3.2空间复杂度 7

3594 3.3稳定程度 7

13050 3.4应用及其改进 8

16079 第四章 程序设计结果 8

21906 附录 9

9205 参考文献 12

.

.

引 言

伴随着社会的发展,数据也变得越来越庞大。如何将庞大的数据进行很好的排序,使用户更加方便的查找资料,成了一件越来越重要的问题。对于程序员来说,这将是一个挑战。

经常查找资料的朋友都会知道,面对海量的资料,如果其查找资料没有进行排序,那么其查找资料将会是一家非常痛苦的事情。针对这一问题,我们自此通过一个课程设计来解决它。

理论上排序算法有很多种,不过本课程设计只涉及到三种算法。这三种算法包括:冒泡排序,选择排序,直接插入排序。

本课程设计通过对这三种算法的运行情况进行对比,选择最优秀的算法出来。希望通过我的努力能解决一些问题,带来一些方便。

需求分析

本课程题目是排序算法的实现,由于各方面的原因,本科程设计一共需要设计三种排序算法。这三种算法包括:冒泡排序,选择排序,直接插入排序。三种排序算法各有独到之处,因此我们要通过各种调试分析来比较其优劣长短。

由于使用的调试软件及操作系统不一样。因此个别程序在不同的软件上可能会报错。

本课程软件运行的的操作系统为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+1]标识,i的值依次为1,2,...,9,对于每一个i,j的值依次为1,2,...10-i。冒泡排序算法的性能

1.2 选择排序

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

基本思想:n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:①初始状态:无序区为R[1..n],有序区为空。②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。…… ③第i趟排序 第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R(1≤i≤n-1)。该趟排序从当前无序区中选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R分别变为记录个数增加1个的新有

排序系统 c语言程序设计,c语言程序设计(排序算法).doc相关推荐

  1. 迪杰斯特拉算法c语言6,C语言迪杰斯特拉实现最短路径算法.doc

    数据结构课程设计报告 ----旅游咨询系统设计 目录 一.需求分析- 2 - 二.系统分析- 2 - 三.概要设计- 3 - 一.系统划分- 3 - 二.邻接矩阵建立流程图:- 3 - 三.迪杰斯特拉 ...

  2. 排序系统 c语言程序设计,c语言程序设计(排序算法).docx

    PAGE PAGE # PAGE PAGE # A A ■ 号 2014-2015学年第2学 <高级语言程序设计> 课程设计报告 题目:排序算法 专业: 班级: 姓名: 指导 教师: 成绩 ...

  3. 机票退订c语言程序,c语言程序设计告飞机票预订系统.doc

    c语言程序设计告飞机票预订系统 目录 目录i 1课程设计的目的1 2需求分析1 2.1设计一个飞机订票系统,完成以下功能1 2.2该系统中用到的数据结构1 3概要设计2 3.1总体功能模块2 3.1. ...

  4. c语言选择排序法程序设计,C语言基础之选择排序算法和代码

    在利用C语言进行编写程序的过程中,我们会常常通过算法及其代码来进行相关程序的编写工作.今天课课家笔者先给大家介绍C语言算法中的选择排序算法以及代码.那么到底什么是选择排序算法呢?下面由笔者慢慢道来. ...

  5. 成绩排序的c语言算法,成绩排序系统(练习排序算法和复习C语言)

    成绩排序系统(练习排序算法和复习C语言) 实验一 一.实验目的 1.回顾C语言中的输入.输出及结构体等相关知识点: 2.回顾函数的使用: 3.掌握插入排序.交换排序.选择排序中的常用排序的算法思想: ...

  6. c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt

    C语言程序设计第3版,第6章函数程序设计 C语言程序设计 第6章 函数程序设计 第6章 数组程序设计 6.1 函数概述 6.2 自定义函数示例 6.3 函数定义及调用 6.4 函数嵌套和递归函数 6. ...

  7. c语言程序设计学籍信息,C语言程序设计报告——学生学籍管理(报告).doc

    C语言程序设计报告--学生学籍管理(报告) 软件设计报告 题 目: 学生学籍管理系统 院系名称:专业名称:班 级: 班内序号:学生姓名 :指导教师:时间: 一.课程设计目的 1.通过本课程设计,强化上 ...

  8. c语言程序设计的水电费问题,C语言程序设计A综合程序设计.pptx

    C语言程序设计A综合程序设计.pptx C语言程序设计A实验 综合程序设计,桂林电子科技大学 教学实践部 秦兴国 Email ,Outline,实验目的和实验要求 综合程序设计实验要求 实验提示,实验 ...

  9. 组数游戏c语言程序报告,c语言组数游戏程序设计实习报告.docx

    c语言组数游戏程序设计实习报告 C程序设计实习报告题目:组数游戏学院:机电学院专业:机械设计制造及自动化姓名:张庆远班级学号:20091002559指导教师:薛思清目录第一章:题目要求1.1:要求1. ...

最新文章

  1. 分享Kali Linux 2016.2第49周虚拟机
  2. kuka机器人股票代码_【内幕】溢价收购KUKA机器人 美的钱从哪来?
  3. 【AWS】DynamoDB扫描操作获取表全部数据
  4. 微软dns能做cname吗_为什么域的根不能是CNAME以及有关DNS的其他花絮
  5. php 返回object,深入分析使用mysql_fetch_object()以对象的形式返回查询结果
  6. 效仿盖茨:PPstream创始人的心路历程
  7. 【计算机组成原理】定点乘法运算之补码一位乘法(Booth算法)
  8. Nginx-配置https虚拟服务(访问http时自动跳转https)
  9. MSDEV.EXE-应用程序错误解决办法(转)
  10. php vld扩展,Linux安装php-vld扩展
  11. 长时间佩戴蓝牙耳机哪个款式好用?这几款半入耳式佩戴稳定舒适,不要错过
  12. 网络安全系列-二十五: PCAP文件格式详解及读取PCAP文件源码示例
  13. Java反射创建对象效率高还是通过new创建对象的效率高?
  14. SQL Server安装中错误该性能计数器注册表配置单元已损坏。若要继续,必须修复该性能计数器注册表配置单元的解决
  15. OSG-简单模型控制
  16. 微信里的网址链接域名如何自动跳转到外部浏览器访问源码
  17. log4j和slf4j的区别
  18. 程序员副业之如何利用空余时间从博客中赚钱?
  19. 图像信息处理:bmp文件、颜色空间转化、灰度图
  20. 爬虫图片mysql_爬取微博图片数据存到Mysql中遇到的各种坑\爬取微博图片\Mysql存储图片\微博爬虫...

热门文章

  1. k8s安装部署Istio
  2. eclipse安装选择清华镜像
  3. Java 基础知识整理 (待整理)
  4. Linux 文件内容替换命令
  5. 查看 linux系统版本,内核,CPU,MEM,位数的相关命令(实验)
  6. C#中文件与文件夹相关的操作
  7. ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理)
  8. [转载] python hex转字符串_Python hexstring-list-str之间的转换方法
  9. elasticsearch监控平台cerebro-0.8.3 相关操作
  10. Python学习路程day9