- 5
- 0
- 约3.18千字
- 约 6页
- 2018-02-06 发布于河南
- 举报
计算机数据结构试验报告hrbedu
实验名称:查询最高分
实验类型:综合性实验
1、问题描述
512人参与玩某游戏,从1~512给每个人分配一个编号,每个人的游戏得分在0~999之间,现要用不同方法查找出游戏参与者的最高分和次高分。要求:
自行产生512个的随机整数作为所有游戏参与者的得分。
输出所有游戏参与者(用编号表示)及其得分。
用顺序查找方法查找出其中取得最高分和次高分者及其分数,并输出。
锦标赛法查找出其中取得最高分和次高分者及其分数,并输出。
通过无序序列建堆和堆调整得到取得最高分者和次高分者及其分数,并输出。
比较不同方法的查找效率和各自的特点。
2、数据结构设计
根据题设,我们可以创建一个数据结构记录数字和编号,再对该数据结构进行初始化,如下:
struct edge_t{
int to;
elem_t len;
};
struct heap{
heap_t h[MAXN*MAXN];
int n,p,c;
void init(){n=0;}
void ins(heap_t e){
for (p=++n;p1_cp(e,h[p1]);h[p]=h[p1],p=1);
h[p]=e;
}
int del(heap_t e){
if (!n) return 0;
for (e=h[p=1],c=2;cn_cp(h[c+=(cn-1_cp(h[c+1],h[c]))],
h[n]);h[p]=h[c],p=c,c=1);
h[p]=h[n--];return 1;
}
};
3、算法设计
(1)首先声明一个比较大小的函数,如:
int big(int l,int r)
{
if (l == r)
return a[l];
else
{
int mid = (l+r) 1;
return max(big(l,mid),big(mid+1,r));
}
}
(2)在主函数中进行随机数的生成,并将生成的随机数储存到之前定义的数组中,如:
n = 512;
srand(time(NULL));
// puts(Number of people :);
// scanf(%d,n);
for (int i=1;i=n;i++)
{
a[i] = rand()%1000;
printf(%d %d\n,i,a[i]);
}
(3)然后用顺序查找的方法找出生成随机数中最高分和次高分,如下:
int max = -1;
int pos = -1;
for (int i=1;i=n;i++)
if (a[i] max)
{
max = a[i];
pos = i;
}
int smax = -1;
int spos = -1;
for (int i=1;i=n;i++)
if (a[i] smax i != pos)
{
smax = a[i];
spos = i;
}
(4)随后再用竞标赛的方法对随机数进行查找,找出最高分和次高分,如下:
heap h;
h.init();
for (int i=1;i=n;i++)
{
heap_t tmp = {a[i],i};
h.ins(tmp);
}
heap_t tmp = h.h[1];
h.del(h.h[1]);
5、运行、测试与分析
运行程序,自动生成随机数,并且分别用顺序查找方法和锦标赛查找方法找出最高分和次高分,然后输出结果,如图9.1所示
图9.1
6、实验收获及思考
本次试验分别运用了顺序查找和锦标赛查找的方法进行了最大数和次大数的查找,让我对查询算法有了更深一层的理解。知道以后该怎样运用查找方法。
7、源码
#include iostream
#include cstdio
#include cstdlib
#include cstring
using namespace std;
int n;
int a[1000];
#define MAXN 200
#define inf 1000000000
typedef int elem_t;
struct edge_t{
int to;
elem_t len;
};
#define _cp(a,b) ((a).d(b).d)
struct heap_t{elem_t d;int v;};
struct heap{
heap_t h[MAXN*MAXN];
int n,p,c;
void init(){n=0;}
void ins(heap_t e){
for (p=++n;p1_
您可能关注的文档
- 设计管理复习资料.ppt
- 第九章问卷与表格.ppt
- 生物与食品工程学院营养配餐大赛策划书.doc
- IVIS-小动物或体内成像.ppt
- goforit8下uni9reading.ppt
- 深圳ACV软件平台介绍.doc
- 鲁迅的文学史观念.ppt
- 永远的风景作文讲评课件.ppt
- 2012年税收新政解析部分.doc
- 0902质量报告.doc
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库完整参考答案详解.docx
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库及答案详解(最新).docx
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库及答案详解(夺冠系列).docx
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库及答案详解(易错题).docx
- 2026广西南宁职业技术大学招聘博士研究生备考题库及一套完整答案详解.docx
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库及答案详解1套.docx
- 质量保障及售后承诺函7篇.docx
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库及完整答案详解1套.docx
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库及参考答案详解一套.docx
- 2026广西南宁职业技术大学公开招聘博士研究生备考题库及参考答案详解.docx
原创力文档

文档评论(0)