教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

数据结构实验报告 - 查找与排序

来源:网络收集 时间:2026-04-09
导读: 哈尔滨工业大学(深圳) 数据结构实验报告 查找与排序 学 院: 计算机科学与技术 姓 名: 学 号: 专 业: 日 期: 数据结构实验报告 一、问题分析 此题是一道排序问题,排序的方法有很多种,此题我用的是堆排序,这是一种不稳定排序,但时间复杂度较低,比较快。计

哈尔滨工业大学(深圳)

数据结构实验报告

查找与排序

学 院: 计算机科学与技术 姓 名: 学 号: 专 业: 日 期:

数据结构实验报告

一、问题分析

此题是一道排序问题,排序的方法有很多种,此题我用的是堆排序,这是一种不稳定排序,但时间复杂度较低,比较快。计算机首先需要把文件中的数据读入内存中,用动态数组存储数据,然后建立数据结构,然后建立堆,比较子节点和父节点大小,降序排列,之后互换头结点与尾节点,再递归重复即可。查找的话,依次查找对比即可。

二、详细设计

2.1设计思想

将股票的代码,交易日期,及开盘价等信息分别用不同的动态数组存储起来。因为要根据交易量的降序进行排序所以应将交易量的信息另外用一个float型的数组保存起来便于比较。

排序:使用一个下标数组用来模拟交易量的堆排序,将下标数组进行降序排序。再根据下标数组里的值将股票信息保存在新的文件中。

查看:因为录入文件时是先把股票的代码相同的信息存入数组的。所以查找时比较股票的代码,找到该代码后比较交易日期。最后输出交易量。

2.2 存储结构及操作

(1)存储结构(一般为自定义的数据类型,比如单链表,栈等。) vector a;//股票代码 vector b;//股票交易日期

vector c;//股票开盘价_最高价_最低价_收盘价

vector d;//将交易量转换为float用于比较 不过有的会被舍去 vector e;//交易量的原始数据 用于输出到排序的文件中

1

数据结构实验报告

(2) 涉及的操作(一般为自定义函数,可不写过程,但要注明该函数的含义。) read_file() 将文件信息分别保存在上述存储结构中

HeapAdjust(vector& x,long s,long n) 小顶堆的调整函数 HeapSort() 用堆排序进行交易量的降序排序并存储在指定文件中 serach() 查找某交易日期某股票的交易量

2.3 程序整体流程

开始

A

读入文件,存入数组

B

排序

C

查找

D

结束

E

2. 堆排序示意图(由于堆排序描述时需要具体数据,所以只弄到示意图)

2

数据结构实验报告

三、用户手册

1>将股票文件先存入指定文件夹中,根据提示输入文件名字按回车即可 2>先在指定文件夹新建你要保存的文件后将文件的名字输入 3>根据提示输入股票代码及交易日期,以空格隔开。

四、总结

需要说明一下的是,这次实验我写的是c++代码。为什么用c++代码呢,主要是因为是最后一次实验了,需要有些纪念意义,更重要的是,c++代码比c代码简洁有效许多,我的电脑并不是很好,所以就选择了更快更简洁的c++代码。其实真正的原因是时间不够了,c++代码写的比较快,而且大一时写过类似的东西刚好用得上。最后一次了,希望助教大人高抬贵手,通融一二,在下不胜感激。

3

数据结构实验报告

五、结果

程序正确运行的结果截图。

注:abc.txt即原文件 a. txt为新建文件

源代码:#include #include #include #include #include #include #include using namespace std;

4

数据结构实验报告 - 查找与排序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/609093.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)