您的位置:首页 > 产品设计 > UI/UE

顺序查找(Sequential Search)

2011-12-15 12:27 204 查看
1 查找思想

从表的一端开始逐个将记录的关键字和给定K值进行比较,若某个记录的关键字和给定K值相等,查找成功;否则,若扫描完整个表,仍然没有找到相应的记录,则查找失败。顺序表的类型定义如下:

#define MAX_SIZE 100

typedef struct SSTable

{

RecType elem[MAX_SIZE] ; /* 顺序表 */

int length ; /* 实际元素个数 */

}SSTable ;

int Seq_Search(SSTable ST , KeyType key)

{

int p ;

ST. elem[0].key=key ; /* 设置监视哨兵,失败返回0 */

for (p=ST.length; !EQ(ST. elem[p].key, key); p--)

return(p) ;

}

2 算法分析

不失一般性,设查找每个记录成功的概率相等,即Pi=1/n;查找第i个元素成功的比较次数Ci=n-i+1 ;

◆ 查找成功时的平均查找长度ASL:

包含查找不成功时:查找失败的比较次数为n+1,若成功与不成功的概率相等,对每个记录的查找概率为Pi=1/(2n),则平均查找长度ASL:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: