noj大作业概要

作业名称:算法演示程序学 院:航海学院班 级:学 号:2013300951姓 名:苏和团队组成:

西北工业大学

2015年11月11日

1、问题与背景(描述程序所要解决的问题或应用背景)

C语言经过几十年的发展已经发展出多种多样的的排序方法,网上的解释和 代码良莠不齐,许多具有严重的错误,给学习者打来极大的不便。

因此我将目前比较流行的1.冒泡排序

4.快速排序 5堆排序 6归并排序

7.基数排序

加以总结标明注释成为这个演示程序以供交流学习使用

2、开发工具(列出所使用的开发工具和第3方开发库)

Code::block

3、主要功能(详细说明程序的功能)

基本功能:本程序可实现对100个及以下的数据排列的功能。

拓展功能:1.选择不同的排序法进行排序。

2.选择数据正序排列,还是逆序排列。

4、设计内容(详细描述解决问题的原理和方法、算法、数据结构等)

本程序的数据变换主要在数组中进行。

冒泡排序

相邻两个记录之间进行比较和互换使较小的记录逐渐从底部移向顶部

选择排序

第i趟选择排序通过n-i次关键码的比较从

插入排序

快速排序

堆排序

先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区。

再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n]。由于交换后新的根R[1]可能违反堆性质,故应将当前无序区R[1..n-1]调整为堆。然后再次将R[1..n-1]中关键字最大的记录R[1]和该区间的最后一个记录R[n-1]交换,由此得到新的无序区R[1..n-2]和有序区R[n-1..n],同样要将R[1..n-2]调整为堆,直到无序区只有一个元素为止。

归并排序

将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。

首先申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复直到某一指针超出序列尾将另一序列剩下的所有元素直接复制到合并序列尾

基数排序基数排序法又称“桶子法”(bucketsort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用

对数据来说,首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中接下来将这些桶子中的数值重新串接起来接着再进行一次分配,这次是根据十位数来分配接下来将这些桶子中的数值重新串接起来这时候整个数列已经排序完毕

5、程序文件与工程名称(标出程序中所有文件名、工程名称及其说明)

工程的名称:排序算法演示程序

包含的程序原文件如下:

1.sort.cpp

主函数、输入和输出数据、显示菜单、选择排序方法

2. sort_fun.cpp

实现7种排序的函数

myh.h

7种排序函数及其附属函数的声明

void Bubble(int a[],int n); 冒泡排序

void Selection(int a[],int n); 选择排序

void Insertion(int a[],int n); 插入排序

void Quick(int a[],int n,int left,int right); 快速排序

void Shift(int a[] , int i , int m); 建堆

void Heap(int a[] , int n); 堆排序

void MergeSort(int R[],int low,int high); 归并排序

void Merge(int *R,int low,int m,int high); 元素比较

基数排序

int getLoopTimes(int num); 获取数字的位数

int findMaxNum( int *p , int n); 查询数组中的最大数

void sort2(in

noj大作业c语言扫雷,noj大作业概要.doc相关推荐

  1. noj大作业c语言扫雷,noj大作业.doc

    作业名称:算法演示程序学 院:航海学院班 级:学 号:2013300951姓 名:苏和团队组成: 西北工业大学 2015年11月11日 1.问题与背景(描述程序所要解决的问题或应用背景) C语言经过几 ...

  2. noj大作业c语言扫雷,noj大作业简介.doc

    作业名称:算法演示程序学 院:航海学院班 级:学 号:2013300951姓 名:苏和团队组成: 西北工业大学 2015年11月11日 1.问题与背景(描述程序所要解决的问题或应用背景) C语言经过几 ...

  3. 通讯录管理系统C语言课程设计大作业,c语言课程设计报告---通讯录管理系统.doc...

    c语言课程设计报告---通讯录管理系统.doc Yangtze University College of Arts and Science 学生实习手册 (课程设计报告) 学 部 理 工 学 部 专 ...

  4. 怎么交c语言课堂作业,C语言第四次作业课堂

    <C语言第四次作业课堂>由会员分享,可在线阅读,更多相关<C语言第四次作业课堂(24页珍藏版)>请在人人文库网上搜索. 1.1,C,语言作业解析,第三弹,寄语:本次作业比较变态 ...

  5. c语言 生成大素数,C语言实现寻找大素数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 找到一亿内所有素数并写入文件用时 35秒. #include "math.h" #include "stdio.h" ...

  6. c语言素数程序出现大空行,C语言实现寻找大素数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 找到一亿内所有素数并写入文件用时 35秒. #include "math.h" #include "stdio.h" ...

  7. 用c语言产生大素数,C语言实现寻找大素数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 找到一亿内所有素数并写入文件用时 35秒. #include "math.h" #include "stdio.h" ...

  8. 华南理工c语言平时作业,c语言程序设计教程-华南理工大学出版社.doc

    c语言程序设计教程-华南理工大学出版社 <C语言程序设计教程>习题参考答案 祝胜林 主编 华南理工大学出版社 [习题1]1 [习题2]2 [习题3]3 [习题4]5 [习题5]7 [习题6 ...

  9. 弟弟的作业c语言代码,弟弟的作业

    在这次,我又开始给弟弟做了作业,不对,是和弟弟,一起,做弟弟的作业.以前都是我妈妈,教他的,也是我妈妈辅导他,让他做好作业,但是现在不一样,我妈妈很忙很忙,所以就是由我来辅导他做作业. 这是第二次给他 ...

最新文章

  1. 2022-2028年中国酱腌菜行业市场研究及前瞻分析报告
  2. java gui 案例_JavaGui入门—布局的嵌套使用附实例
  3. 与Susan Fowler探讨生产就绪微服务之问答
  4. WCF服务端运行时架构体系详解[下篇]
  5. format控制输出 python_【Python】之format奇技淫巧的输出控制
  6. 1357. 优质牛肋骨【一般 / 思维 爆搜】
  7. 代码传奇 | 明明可以靠颜值 却用代码把人类送上了月球的女人——Margaret Hamilton
  8. 万分之二用百分之怎么表示_红木家具怎么辨别真假
  9. 微课|玩转Python轻松过二级(1.3节):编码规范与代码优化建议2
  10. php如何安装,php如何安装freetype
  11. 使用Hystrix实现自动降级与依赖隔离-微服务
  12. springmvc源码-调用
  13. Windows 10中检查已安装编解码器的几个方法
  14. python课设答辩ppt_学生成绩管理系统答辩幻灯片.ppt
  15. 两天两夜,1M图片优化到100kb
  16. 2020年裸辞的人,真的待业了一整年吗?
  17. PaddleX---MobileNetV2图像分类
  18. [附源码]Java计算机毕业设计SSM房屋出租管理系统
  19. 四、Transforms
  20. 启动mysql系统找不到指定文件

热门文章

  1. 2022上海市安全员C证考试模拟100题模拟考试平台操作
  2. C语言有简单基础的入手指南(MOOC课程 浙大 翁凯老师主讲)听课笔记 the basic knowledge of C
  3. 【一本通广搜】The Castle
  4. 【STM32单片机】
  5. MLX90640开发笔记(一)概述及开发资料准备
  6. C语言 统计字符串中的数字字符个数
  7. 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B题
  8. html设置固定长度下划线
  9. 【娱乐大闯关】C语言实现初级迷宫小游戏
  10. 经济面板专题一:全国所有区县面板数据-人口、污染、农业等70多指标(2000-2019年)