20172311-ASL测试 2018-1938872补充博客
课程:《程序设计与数据结构》
班级: 1723
姓名: 赵晓海
学号: 20172311
实验教师:王志强老师
测试日期:2018年10月12日
必修/选修: 必修
测试内容
已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少?
(本题目2分,要求写出结题过程)
测试过程及结果
测试过程中遇到的问题和解决过程
- 问题1:什么是ASL
- 问题1解决方案:通过询问同学得知:
- 问题2:需对折半查找法进行了解
- 问题2解决方案:通过查阅相关资料找到了一个较好理解的折半查找方法的实现如下:
//查找一给定的值是否在指定的数组中,如果存在输出在数组中的下标,如果不存在则输出-1
public?static?int?getIndex(int?target,?int[]?array)?{
if?(array?==?null?||?array.length?==?0)
return?-1;
if?(target?<?array[0]?||?target?>?array[array.length?-?1])
return?-1;
int?left?=?0;
int?right?=?array.length?-?1;
int?mid?=?(left?+?right)?/?2;
while?(left?<=?right)?{
if?(target?<?array[mid])
right?=?mid?-?1;
if?(target?>?array[mid])
left?=?mid?+?1;
if?(target?==?array[mid])
return?mid;
mid?=?(left?+?right)?/?2;
}
return?-1;
}
public?static?void?main(String[]?args)?{
int?num[]?=?{?2,?3,?4,?6,?10,?20,?31,?35,?42,?53,?60,?90?};
System.out.println(getIndex(7,?num));
}
思考
这次实验的内容还是很有意义的,比较深入的学习了折半查找法的原理及实现!!
参考资料
原文地址:https://www.cnblogs.com/zhaoxiaohai/p/9781286.html
时间: 2024-11-11 08:51:19