顺序查找(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:
从表的一端开始逐个将记录的关键字和给定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:
相关文章推荐
- SequentialSearch 顺序表查找
- 顺序查找(Sequential Search)
- 数据结构之顺序查找(Sequential Search)
- Java中的查找算法之顺序查找(Sequential Search)
- Java经典算法汇总之顺序查找(Sequential Search)
- 顺序查找(Sequential Search)
- 简单编程(二十二)编写顺序查找的方法public static int[] ordinalSearch(int data[],int key)
- 顺序查找(LinearSearch)
- 数据结构算法学习-1. 查找(Search)概论与三种顺序查找算法
- Leetcode刷题记—— 33. Search in Rotated Sorted Array(在翻转顺序的数组里查找)
- 算法:静态查找表(Static Search Table)(顺序查找、二分查找、插值查找、斐波纳契查找)
- 数据结构实验之查找六:顺序查找
- 资源文件查找顺序
- 【查找--静态查找】简单的顺序查找
- 定义二分法查找数组中的数,实现arrays.binarySearch()int类型的功能。
- 算法 :顺序查找
- 二维数组中的查找-在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 静态查找_Search.c
- 算法:顺序查找与折半查找
- 顺序表查找