😍查找😍
Posted xiaofff
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了😍查找😍相关的知识,希望对你有一定的参考价值。
顺序查找
顺 序 查 找 法 的 特 点 : 用 所 给 关 键 字 与 线 性 表 中 各 元 素 的 关 键 字‘ 逐 个 比 较 ‘, 直 到 成 功 或 失 败 。 存 储
结 构 通 常 为 顺 序 结 构 , 也 可 为 链 式 结 构 。
typedef struct {
ElemType *elem;
int Len; //表长
}Stable;
int Search(Stable St,ElemType key){
St.elem[0] = key; //哨兵
//从后往前找
for(i=St.Len; St.elem[i]!=key; --i)
//若表中不存在关键字,则将查找到i=0时退出for循环
return i;
}
折半查找
折半查找的思想:将表中间位置记录的关键字与查找 关 键 字 比 较 , 如 果 两 者 相 等 , 则 查 找 成 功 ; 否
则 利 用 中 间 位 置 记 录 将 表 分 成 前 、 后 两 个 子 表 , 如 果 中 间 位 置 记 录 的 关 键 字 大 于 查 找 关 键 字 , 则 进 一
步 查 找 前 一 子 表 , 否 则 进 一 步 查 找 后 一 子 表 。 重 复 以 上 过 程 , 直 到 找 到 满 足 条 件 的 记 录 , 使 查 找 成 功 ,
或 直 到 子 表 不 存 在 为 止 , 此 时 查 找 不 成 功 。
int BinarySer(SqList L,ElemType key){
int low=0,hight=L.Len-1,mid;
whlie(low <= hight){
mid = (low+hight)/2; //中间位置
if(L.elem[mid] == key){
return mid;
}else if(L.elem[mid] > key){ //前半部分找
hight = mid-1;
}else{ //后半部分找
low = mid-1;
}
}
return -1; //查找失败
}
查找成功与失败
索引查找(分块查找)
基本思想:将查找表分为若干子块,块内的元素可以‘无序‘,块之间是‘有序‘的
8, 14, 6, 9, 10, 22, 34, 18, 19, 31,40, 38, 54, 66, 46, 71, 78, 68, 80, 85, 100, 94, 88, 96, 87
将25个记录分为5块,每块中有5个记录
以上是关于😍查找😍的主要内容,如果未能解决你的问题,请参考以下文章