数据结构实验报告——查找与排序 下载本文

内容发布更新时间 : 2024/6/2 1:11:56星期一 下面是文章的全部内容请认真阅读。

哈尔滨工业大学(深圳)

数据结构实验报告

查找与排序

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

数据结构实验报告

一、问题分析

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

二、详细设计

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