实验七 查找技术的编程实现
【实验目的】
查找技术的编程实现
要求:
查找技术的编程实现(2学时,综合型),掌握查找技术的编程实现,可以实现一种,也可以实现多
种。也鼓励学生利用基本操作进行一些应用的程序设计。
【实验性质】
综合性实验,其综合性体现在本实验的内容具有的实际应用价值,多种数据结构的综合应用,各种具
有代表性的算法设计和程序实现。(学时数:2H)
【实验内容】
1.顺序、二分等查找程序设计。
2.鼓励学生实现哈希法等查找程序设计。只要是本章讨论的查找技术都可以作为编程的内容。
3.鼓励将多种方法进行同时编程进行对比。
【思考问题】
1. 查找的效率主要是什么操作体现的?
2. 二分法的优缺点分析?
3. 哪些查找算法可以用递归实现?
4. 哈希查找法的特点和优点?最终取消了数据比较的基本操作吗?
5. 举出查找的应用范例?
【参考代码】(以下内容,学生任意选择一个完成即可)
(一)基础篇
//运用非递归方式设计折半查找法的程序
//程序构思: /
//假设 middle=n/2,此时左边办 left=0,右边界 right=0。
//如果 KeyValue<Data[middle]:
// 表示 KeyValue 可能出现在 Data[middle]之前,所以查找 Data[0]到 Data[middle-1]之间的数据。
// 这时 left=left,right=right-1,而 middle=(left+right)/2。
//如果 KeyValue>Data[middle]:
// 表示 KeyValue 可能出现在 Data[middle]之后,所以查找 Data[middle+1]到 Data[n]之间的数据。
// 这时 left=middle+1,right=right,而 middle=(left+right)/2。
//如果 KeyValue=Data[middle]:
// 表示已查找到数据。
//重复执行上述 3 个步骤直到 left=right 或者找到欲查找数据为止。
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#dene MAX 100
int Counter=1; //计数器