实验七 静态查找表的查找
来源:互联网 发布:阿里国际站数据分析 编辑:程序博客网 时间:2024/06/03 23:57
一、实验目的
1.掌握顺序查找操作的算法实现。
2.掌握二分查找操作的算法实现及实现该查找的前提。
3.掌握索引查找操作的算法实现。
二、实验内容
1.建立顺序查找表,并在此查找表上实现顺序查找操作。
2.建立有序顺序查找表,并在此查找表上实现二分查找操作。
三、实验要求
1.建立顺序查找表,并在此查找表上实现顺序查找操作。
根据输入的查找表的表长n和n个关键字值,建立顺序查找表,并在此查找表中用顺序查找方法查找给定关键值的记录,最后输出查找结果。
2.建立有序顺序查找表,并在此查找表上实现二分查找操作。
根据输入的查找表的表长n和n个按升序排列的关键字值,建立有序顺序查找表,并在此查找表中用二分查找方法查找给定关键值的记录,最后输出查找结果。
四、详细程序清单
//1.顺序查找#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef int keytype;typedef struct{keytype key;}redtype;typedef struct {redtype elem[MAXSIZE]; int length;}Sstable;int Search_Seq(Sstable ST,keytype key)//顺序查找 {ST.elem[0].key=key;for(int i=ST.length;;i--){if(key==ST.elem[i].key)return i;}}void Create(Sstable &ST,int n)//创建顺序表 {printf("输入元素:"); for(int i=1;i<=n;i++)scanf("%d",&ST.elem[i].key);} int main(){Sstable ST;keytype key;int i;printf("输入长度:");scanf("%d",&ST.length);Create(ST,ST.length);while(1){printf("输入要查找的元素:");scanf("%d",&key);i=Search_Seq(ST,key);if(i) printf("元素位置在%d\n",i);else printf("元素不存在\n");}}
//2.二分查找//这两个程序只有查找函数部分不同,所以其余部分省略int Search_Bin(Sstable ST,keytype key)//二分查找 {int low,high,mid;low=1;high=ST.length;while(low<=high){mid=(low+high)/2;if(key==ST.elem[mid].key) return mid;else if(key<ST.elem[mid].key) high=mid-1;else low=mid+1;}return 0;}
五、程序运行结果
1. 顺序查找
2. 二分查找
六、实验心得体会
心得体会实在没啥好说的,说一下算法思想:
(1)顺序查找操作的基本步骤:从表中最后一个记录开始,逆序扫描查找表,依次将扫描到的结点关键字值与给定值key进行比较,若当前扫描到的结点关键字值与key相等,则查找成功;若扫描到第一个记录,仍未找到关键字值等于key的记录,则查找失败。在程序设计中为了减少执行的循环次数使用了监视哨。监视哨可设置在表头,也可设置在表尾。在此设置在表头。
(2)二分查找也叫折半查找,这种查找要求查找表必须是有序顺序表。其查找操作的基本步骤:首先取出表中的中间元素,若其关键字值等于给定值key,则查找成功,操作结束;否则以中间元素为分界点,将查找表分成两个子表,并判断所查的key值所在的子表是前部分,还是后部分,再重复上述步骤直到找到关键字值为key的元素或子表长度为0。
- 实验七 静态查找表的查找
- 实验七 查找
- 【数据结构实验七】查找
- 实验七--查找算法
- 查找:静态查找表
- 【查找--静态查找】简单的顺序查找
- 静态查找表的总结
- 静态查找表的实现
- 数据结构 查找 静态查找表
- 查找之静态查找表
- 查找(静态查找表)
- 顺序查找--二分查找--静态树表的查找--分块查找
- 静态查找表:顺序查找、折半查找、分块查找
- 静态查找表:顺序查找、折半查找、分块查找
- 静态查找表(一)顺序表的查找
- 静态查找表(二)有序表的查找
- 静态表查找--顺序表的查找(无序)
- 静态查找表的建立及顺序查找操作
- I/O流基础知识1
- 浅谈栈帧
- java排序 -- 堆排序
- Myeclipse中左边的项目目录调没了,怎么再让它显示出来
- Android Fragment 真正的完全解析(上)
- 实验七 静态查找表的查找
- Spring AOP基础
- python解析xml转化为csv
- 题目117:求逆序数
- VMware正常安装后仍然不能实现文件拖拽的原因
- keras 的LearningRateScheduler
- 高程第三章
- jQuery插件开发精品教程
- 特殊回文数