c语言数据结构产生随机数并排序,数据结构产生随机数并排序.doc
数
据
结
构
课
程
设
计
学部:信息科学与技术学部
专业:计算机科学与技术
目录
一、 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相关推荐
- 数据结构视频教程 -《[猎豹网校]数据结构与算法_C#语言》
整个视频打包下载地址:史上最全的数据结构视频教程系列分享之<[猎豹网校]数据结构与算法_C#语言>,转载请保留出处和链接! 更多优秀资源请访问:我是码农 在猎豹网校授课的基本都是在IT行业 ...
- 数据结构c语言版朱战立报告,数据结构(C语言版)
本书是Sedgewick彻底修订和重写的C算法系列的第一本.全书分为四部分,共16章.第一部分"基础知识"(第1-2章)介绍基本算法分析原理.第二部分"数据结构" ...
- Java语言进阶-List、Set、数据结构、Collections
day03 [List.Set.数据结构.Collections] 主要内容 数据结构 List集合 Set集合 Collections 学习目标 能够说出List集合特点 能够说出常见的数据结构 能 ...
- c语言药店管理系统的前提报告,数据结构(C语言)课设5——药店的药品销售统计系统...
数据结构(C语言)课设5--药店的药品销售统计系统 题目描述: 你在一个L药品店当一名仓库管理员,马上就要放寒假回家过年了,L药店对这一年的销售情况做了统计,但这看起来太杂乱无章了.因此,你需要对这些 ...
- 《数据结构与算法》(二十五)- 排序算法:快速排序
目录 前言 1. 快速排序 1.1 快速排序算法 1.2 快速排序算法复杂度分析 1.3 快速排序优化 2. 总结 原文地址:https://program-park.github.io/2021/1 ...
- 数据结构-考研难点代码突破(C/C++/Java排序算法,性能及其稳定性分析(内部排序))
文章目录 1. 内部排序的基本种类 2. 插入排序 Ⅰ直接插入排序 性能与稳定性分析 Ⅱ 折半插入排序 性能与稳定性分析 Ⅲ 希尔排序 性能与稳定性分析 3. 交换排序 Ⅰ 冒泡排序 性能与稳定性分析 ...
- 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(一)
这里用的是严蔚敏版<数据结构 (C语言版)>和<数据结构题集>,深感自己的代码写得又渣又无力,打算把这本书好好琢磨透彻,里面的算法和模板都实现一遍,题目也都做一遍.最终能够做到 ...
- java array 元素的位置_数据结构与算法:动态图解十大经典排序算法(含JAVA代码实现)...
点击上方"JAVA",星标公众号 重磅干货,第一时间送达 本文将采取动态图+文字描述+正确的java代码实现来讲解以下十大排序算法: 冒泡排序 选择排序 插入排序 希尔排序 归并排 ...
- 【数据结构】排序相关题目及各种排序方法的总结
[数据结构之排序] 常用的排序方法有:直接插入排序.希尔排序.冒泡排序.快速排序.简单选择排序.树形选择排序.堆排序.归并排序.基数排序 提示:如有不理解的知识点,请看B站最好的数据结构老师王卓老师的 ...
- 数据结构笔记(王道考研) 第八章:排序
大部分内容基于中国大学MOOC的2021考研数据结构课程所做的笔记,该课属于付费课程(不过盗版网盘资源也不难找...).后续又根据23年考研的大纲对内容做了一些调整,将二叉排序树和平衡二叉树的内容挪到 ...
最新文章
- html 省份,城市 选择器附效果图
- SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb
- Windows使用VNC连接ubuntu
- DRF——路由控制器
- oppo手机计算机,OPPO手机助手
- SpringBoot、mybatis、Druid结合使用存储emoji图标
- VISIO科学图形包-亲测VISIO2013可用,应该适用其他高级版本
- 19.4.17 javaScript基础 培训第三天
- 宝塔面板防火墙安装和使用教程详解
- 磁传感器AKM8975驱动和中间层
- csv to dbf java_将csv文件转换为dbf
- 2019-11-29-win10-uwp-如何开始写-uwp-程序
- 【教学类-06】20220119 VS python 20以内加减法(不重复)
- 基于opencv实现人脸识别及签到系统
- linux 没有可用的缓冲区空间不足,由于系统缓冲区空间不足或队列已满,不能执...
- 总结iPhone、iPad各机型对应的iOS 系统版本(最全)
- GooglePay默认支付(payment)应用 之一
- window文件共享访问记录清除命令
- 智慧公交解决方案-最新全套文件
- MATLAB输出串口发送所需十六进制数据