学部:信息科学与技术学部

专业:计算机科学与技术

目录

一、 1

二、实验目的和要求1

三、实验内容和原理1

四、实验环境1

五、自定义函数2

1.生成随机数的函数2

2.快速排序函数2

3.堆排序函数3

4.显示函数3

5.主函数4

六、运行截图4

七、代码清单5

实验题目

排序综合 利用随机函数产生N个随机整数,对这些数方法排序排序排序。

C++6.0

五、自定义函数

1.生成随机数的函数

/*--------------------产生随机数-------------------*/

void creat(sqlist *l)

{

int i;

printf("请输入要产生的随机数个数:");

scanf("%d",&l->length);

srand((unsigned)time(NULL)); //给srand()提供一个种子,它是一个unsigned int类型,

for(i=1;i<=l->length;i++)

{

l->r[i].key = rand() %900+100; //调用rand(),返回一个随机数(在0到32767之间)

printf("%d ",l->r[i].key);

}

printf("\n");

}

2.快速排序函数

/*交换顺序表中子表r[low...high]的记录,使枢轴记录到位,并返回其所在的位置*/

int partion(sqlist *l,int low,int high)

{ int pivotkey;

l->r[0]=l->r[low]; //用子表的第一个记录作枢轴记录

pivotkey=l->r[low].key; //枢轴记录关键字

while(low

{ while(lowr[high].key>=pivotkey) --high;

l->r[low]=l->r[high]; //将比枢轴记录小的记录移到低端

while(lowr[low].key<=pivotkey) ++low;

l->r[high]=l->r[low]; //将比枢轴记录大的记录移到低端

}

l->r[low]=l->r[0]; //枢轴记录到位

return low; //返回枢轴位置

}

/*--------------快速排序------------------*/

void Qsort(sqlist *l,int low,int high)

{ int pivotloc;

if(low

{ pivotloc=partion(l,low,high); //将l.r[low..high]一分为二

Qsort(l,low,pivotloc-1); //对低子表递归排序

Qsort(l,pivotloc+1,high); //对高子表递归排序

}

}

3.堆排序函数

/*调整h->r[s]的关键字,使h->r[s]成为一个大顶堆*/

void heapadjust(sqlist *h,int s,int m)

{ keytype rc;

int j;

rc=h->r[s];

for(j=2*s;j<=m;j*=2)

{ if(jr[j].keyr[j+1].key)

++j;

if(rc.key>=h->r[j].key) break;

h->r[s]=h->r[j];

s=j;

}

h->r[s]=rc;

}

/*对顺序表h进行堆排序*/

void heapsort(sqlist *h)

{ keytype rc;int i;

for(i=h->length/2;i>0;--i)

heapadjust(h,i,h->length);

for(i=h->length;i>1;--i)

{ rc=h->r[1];

h->r[1]=h->r[i];

h->r[i]=rc;

heapadjust(h,1,i-1);

c语言数据结构产生随机数并排序,数据结构产生随机数并排序.doc相关推荐

  1. 数据结构视频教程 -《[猎豹网校]数据结构与算法_C#语言》

    整个视频打包下载地址:史上最全的数据结构视频教程系列分享之<[猎豹网校]数据结构与算法_C#语言>,转载请保留出处和链接! 更多优秀资源请访问:我是码农 在猎豹网校授课的基本都是在IT行业 ...

  2. 数据结构c语言版朱战立报告,数据结构(C语言版)

    本书是Sedgewick彻底修订和重写的C算法系列的第一本.全书分为四部分,共16章.第一部分"基础知识"(第1-2章)介绍基本算法分析原理.第二部分"数据结构" ...

  3. Java语言进阶-List、Set、数据结构、Collections

    day03 [List.Set.数据结构.Collections] 主要内容 数据结构 List集合 Set集合 Collections 学习目标 能够说出List集合特点 能够说出常见的数据结构 能 ...

  4. c语言药店管理系统的前提报告,数据结构(C语言)课设5——药店的药品销售统计系统...

    数据结构(C语言)课设5--药店的药品销售统计系统 题目描述: 你在一个L药品店当一名仓库管理员,马上就要放寒假回家过年了,L药店对这一年的销售情况做了统计,但这看起来太杂乱无章了.因此,你需要对这些 ...

  5. 《数据结构与算法》(二十五)- 排序算法:快速排序

    目录 前言 1. 快速排序 1.1 快速排序算法 1.2 快速排序算法复杂度分析 1.3 快速排序优化 2. 总结 原文地址:https://program-park.github.io/2021/1 ...

  6. 数据结构-考研难点代码突破(C/C++/Java排序算法,性能及其稳定性分析(内部排序))

    文章目录 1. 内部排序的基本种类 2. 插入排序 Ⅰ直接插入排序 性能与稳定性分析 Ⅱ 折半插入排序 性能与稳定性分析 Ⅲ 希尔排序 性能与稳定性分析 3. 交换排序 Ⅰ 冒泡排序 性能与稳定性分析 ...

  7. 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(一)

    这里用的是严蔚敏版<数据结构 (C语言版)>和<数据结构题集>,深感自己的代码写得又渣又无力,打算把这本书好好琢磨透彻,里面的算法和模板都实现一遍,题目也都做一遍.最终能够做到 ...

  8. java array 元素的位置_数据结构与算法:动态图解十大经典排序算法(含JAVA代码实现)...

    点击上方"JAVA",星标公众号 重磅干货,第一时间送达 本文将采取动态图+文字描述+正确的java代码实现来讲解以下十大排序算法: 冒泡排序 选择排序 插入排序 希尔排序 归并排 ...

  9. 【数据结构】排序相关题目及各种排序方法的总结

    [数据结构之排序] 常用的排序方法有:直接插入排序.希尔排序.冒泡排序.快速排序.简单选择排序.树形选择排序.堆排序.归并排序.基数排序 提示:如有不理解的知识点,请看B站最好的数据结构老师王卓老师的 ...

  10. 数据结构笔记(王道考研) 第八章:排序

    大部分内容基于中国大学MOOC的2021考研数据结构课程所做的笔记,该课属于付费课程(不过盗版网盘资源也不难找...).后续又根据23年考研的大纲对内容做了一些调整,将二叉排序树和平衡二叉树的内容挪到 ...

最新文章

  1. html 省份,城市 选择器附效果图
  2. SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb
  3. Windows使用VNC连接ubuntu
  4. DRF——路由控制器
  5. oppo手机计算机,OPPO手机助手
  6. SpringBoot、mybatis、Druid结合使用存储emoji图标
  7. VISIO科学图形包-亲测VISIO2013可用,应该适用其他高级版本
  8. 19.4.17 javaScript基础 培训第三天
  9. 宝塔面板防火墙安装和使用教程详解
  10. 磁传感器AKM8975驱动和中间层
  11. csv to dbf java_将csv文件转换为dbf
  12. 2019-11-29-win10-uwp-如何开始写-uwp-程序
  13. 【教学类-06】20220119 VS python 20以内加减法(不重复)
  14. 基于opencv实现人脸识别及签到系统
  15. linux 没有可用的缓冲区空间不足,由于系统缓冲区空间不足或队列已满,不能执...
  16. 总结iPhone、iPad各机型对应的iOS 系统版本(最全)
  17. GooglePay默认支付(payment)应用 之一
  18. window文件共享访问记录清除命令
  19. 智慧公交解决方案-最新全套文件
  20. MATLAB输出串口发送所需十六进制数据

热门文章

  1. Java教学视频百度云资源,SpringMVC-狂神笔记
  2. 雷达遥感原理;侧视雷达成像系统;雷达回波强度的影响因素;雷达遥感及雷达图像的特征
  3. Arcgis使用教程(五)ARCGIS空间数据处理之影像镶嵌(拼接)与裁剪
  4. HBase2.2.2安装和编程
  5. 产品经理入门必备的5款管理软件 马上收藏
  6. ngrok 本地域名映射
  7. docker启动streamsets
  8. 解决错误Annotation processors must be explicitly declared now
  9. String字符串转List<Map>集合
  10. Django管理多个APP且在后台显示自定义APP的名称