没有合适的资源?快使用搜索试试~ 我知道了~
各种查找算法的性能分析.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 86 浏览量
2022-07-03
10:03:14
上传
评论
收藏 118KB DOCX 举报
温馨提示
试读
13页
。。。
资源推荐
资源详情
资源评论
项目成员:
组编号:
完成时间:
1.1
........................................................................................................2
顺序查找问题描述
附录:源代码(基于 C 语言的)
..............................................................7
查找问题就是在给定的集合(或者是多重集,它允许多个元素具有相同的值)中找寻一个给定的
值,我们称之为查找键。
对于查找问题来说,没有一种算法在任何情况下是都是最优的。有些算法速度比其他算法快,
但是需要较多的存储空间;有些算法速度非常快,但仅适用于有序数组。查找问题没有稳定性的问题,
但会发生其他的问题(动态查找表)。
在数据结构课程中,我们已经学过了几种查找算法,比较有代表性的有顺序查找(蛮力查找),
二分查找 (采用分治技术),哈希查找(理论上来讲是最好的查找方法)。
顺序查找从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比
较相等,则查找成功,找到所查记录;反之,若直至第一个记录,其关键字和给定值比较都不等,则表明表中
没有所查记录,查找不成功。
(1)分析掌握折半查找算法思想,在此基础上,设计出递归算法和循 环 结 构 两 种 实 现 方 法 的 折 半
查找函数。
(2)编写程序实现:在保存于数组a[i]有序数据元素中查找数据元素 k 是否存在。数元素
k 要包含两种情况:一种是数据元素 k 包含在数组中;另一种是数据元素 k 不包含在数
组中
(3)数组中数据元素的有序化既可以初始赋值时实现,也可以设计一个排序函数实现。
(4)根据两种方法的实际运行时间,进行两种方法时间效率的分析对比。
第二章:算法定义(Algorithm Specification)
从表的一端向另一端逐个进行记录的关键字和给定值(要查找的元素)的比较,若某个记录
的关键字和给定值比较相等,则查找成功,找到所查找记录;反之,若直至第一个记录,其关键
int SeqSearch1(int r[ ], int n, int k) //数组 r[1] ~ r[n]存放查找集合,n 是数组中元
{
while (i>0 && r[i]!=k)//当 i>0 并且数组元素中的值不等于要查找元素时,i 减一
继续执行 while 循环
}
二分查找又称折半查找,二分查找首先要求待查找的表是有序表,如果要查找的元素是表的中间
的那个元素,则找到要查找的元素,查找成功;如果要查找的元素比中间的那个元素小则使用相同的
策略只在左边的区间查找就可以;如果要查找的元素比中间的那个元素大,则使用相同的策略在右边
int binary_search_2(int a[],int n,int k)//递归的二分查找算法的伪代码:查找表放在数组 a 中,n 是
int Low,Mid,High;
//quicksort(a,0,SIZE-1);
剩余12页未读,继续阅读
资源评论
G11176593
- 粉丝: 6668
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功