查找——简单顺序查找
2013-03-03 22:28
225 查看
基本思想
从顺序表的一端开始扫描,将给定值K依次与顺序表中各数据元素的关键字进行比较,若当前扫描到的结点关键字与给定值K相等,则查找成功;若扫描结束后,仍未找到关键字等于K的结点,则查找失败。
实例分析
在顺序表:22,34,25,12,35,67,7,45中查找25的位置。在数组元素的1~8位置中依次存放组成顺序表的数据元素,将给定值K作为新数据元素的数据项存放在0位置(称其为监视哨)。查找操作从顺序表的最后一个元素开始,依次将r[8]~r[1]的关键字依次与给定值K比较。最后输出位置i,若i>0时,表示查找成功,i=0时表示查找失败。
分析图如下:
代码实现
int SeqSearch(List L,int key) { L.r[0]=key; int i=L.length; while(L.r[i]!=key)--i; return i; }注意,将r[0]置为key的好处是,防止下标越界,节省重新比较的时间。
性能分析
假设顺序表的长度为n,那么查找第i个元素时需要进行n+1-i次比较,即Ci=n+1-i。又假设查找每个数据元素的概率相等,则Pi=1/n,则顺序查找算法的平均查找长度为:注:平均查找长度中Pi为查找顺序表中第i个元素的概率,Ci为找到关键字等于给定值K时已经进行比较过的次数。
由上可知,最大查找长度和平均长度与的算法时间复杂度均为O(n)。
相关文章推荐
- 简单描述一下二分查找和顺序查找
- 查找算法系列之简单查找:顺序查找、二分查找、分块查找
- #查找算法#【1】简单查找:顺序、折半查找
- 最简单的顺序查找
- 顺序表的实现以及简单的 插入,删除,查找,输出操作
- 顺序查找及简单优化
- (五)数据结构之静态查找的简单实现:顺序查找和二分查找
- 简单编程(二十二)编写顺序查找的方法public static int[] ordinalSearch(int data[],int key)
- 两种简单查找算法之顺序查找和二分查找
- 简单的顺序表查找技术java实现
- 算法复习--------------基本算法:顺序查找,选择排序,冒泡排序算法等简单算法
- 查找算法系列之简单查找:顺序查找、二分查找、分块查找
- 【查找--静态查找】简单的顺序查找
- 简单类加载顺序
- Go语言中defer的调用顺序简单测试代码
- [转载]查找算法----顺序查找
- 数据结构上机实验之顺序查找(二分查找)
- 顺序查找 折半查找 二叉排序树
- BASH 脚本命令查找顺序及command builtin enable
- 数据结构上机实验之顺序查找