查找操作------顺序查找

来源:互联网 发布:微信淘宝客机器人软件 编辑:程序博客网 时间:2024/06/06 23:19

之前讨论了表结构链表与表——随心所欲地进出任何队列.制表的目的就是为了以后的查看或者查找方便,如果制表后又不在表上进行查找,那么制表就变得毫无意义了.

"查找"就是在一组数据项里面查找一个特定的元素.所以查找有时也称为搜索.但实际上搜索和查找也不是完全一样.查找要做的是在一个序列或集合里面查看是否存在某个特定的元素.这和一般的搜索并不完全相同,因为搜索并不一定要事先知道要搜索什么.事实上,查找是搜索的一个特例.

查找的结果只能有两种:成功和失败.

下面就给出最简单的查找方法---------顺序查找:

int list::sequentialSeaech(const int &target,int &position)//顺序查找{for(int i(0);i<count;++i)//从头开始,一个一个的查找{if(data[i] == target)//如果有与target相同的值,则返回position{position = i;return success;}}return overflow;//否则,报错}

上述查找方法的成本最坏情况为表的长度;最好当然是1,即常数;平均来讲则需要比较一半的元素.如果表的元素个数为n,则平均成本为n/2,即O(n).