各种排序大全 C++.pdf

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
各种排序大全C

数据结构课程设 计 第10 题 yuhao 2015-12-20 目录 1 系统分析 2 1.1 项目需求分析 2 1.2 系统功能分析 2 1.2.1 功能函数(Function) 2 1.2.2 采用的数据结构介绍 2 1.3 系统需求分析 3 2 系统设计及其实现分析 3 2.1 系统总体设计 3 2.2 系统运行流程图 4 2.3 功能实现分析 4 3 系统测试 12 4 Bug Report 13 5 总结与分析 14 1 系统分析 1.1 项目需求分析 按用户要求产生一定量的随机数,并对这些随机数进行升序排序。需要用冒泡排 序,选择排序,直接插入排序,希尔排序,快速排序,堆排序,归并排序,基数排序 来实现排序;并分析它们的运行时间和交换(选择)次数。 1.2 系统功能分析 1.2.1 功能函数(Function)  void init(int randsize); 初始化函数;  void bubbleSort(int randArray[], int count); 冒泡排序算法;  void selectSort(int randArray[], int count); 选择排序算法;  void insertSort(int randArray[], int count); 直接插入排序算法;  void shellSort(int randArray[], int count); 希尔排序算法;  void quickSort(int randArray[], int low, int high); 快速排序算法;  void adjustHeap(int randArray[], int i, int count); 堆排序算法—调整堆;  void heapSort(int randArray[], int count); 堆排序算法;  void Merge(int randArray[], int low, int mid, int high); 归并排序算法—合并数组;  void mergeSort(int randArray[], int low, int high); 归并排序算法;  int getNumInPos(int num, int pos); 基数排序算法—获得随机数 各个位上的数字  void radixSort(int randArray[], int count); 基数排序算法; 1.2.2 采用的数据结构介绍 所有算法中,随机数都是存放在随机数组里的,项目中运用的均是动态数组。在 堆排序算法中,需要用到最大堆,下面阐述对最大堆的认识。 首先,堆数据结构是一种数组对象,它可以被视为一个完全二叉树结构。它的特 点是父结点的值大于(小于)两个子结点的值(分别称为大顶堆和小顶堆)。它常用 于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。 而最大堆即大顶堆,其父结点的值大于两个子结点的值。之所以选择最大堆应用 于堆排序是因为最大堆有个特点,即它的首元素必定是整个堆中值最大的。利用这一 特性,通过count-1 次对调堆顶与指定的堆尾元素,每次对调后调整堆,则可以将整个 堆有序化,也即达到我们排序的目的。 如图,最大堆 1.3 系统需求分析 (1)硬件环境: 此项目极为简单,硬件环境无须赘述。 (2 )软件环境: 操作系统:win7 及以上 调试环境:visual studio 2010 及以上 2 系统设计及其实现分析 2.1 系统总体设计 与以往项目相同,为了使整体项目模块化,我选择了用类来封装排序函数以及参 数。先声明一个排序类(Sort ),其内有需要用到的参数(如随机数组,随机数个数, 交换次数等)和所有的排序函数。之后再在主函数中调用之,完成对每个排序函数的 调用和检测。 2.2 系统运行流程图 冒泡排序 选择排序

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档