首页 > 代码库 > 查找-顺序表的查找
查找-顺序表的查找
相关术语:
查找表:(Search Table)是由同一类型的数据元素(或记录)构成的集合。
关键字:(Key)是数据元素中某个数据项的值,又称为键值,它可以标识一个数据元素。
主关键字:若某个关键字可以唯一地标识一个记录,则称此关键字为主关键字(Primary Key)。这就意味着,对于不同的记录,其主关键字均不相同。主关键字所在的数据项 成为主关键码。
次关键字:对于那些可以识别多个数据元素(或记录)的关键字,我们称之为次关键字(Second Key)。
查找:就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或记录。
静态查找表:只作查找操作的查找表。
动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。
顺序表查找:
/*这里 a 为一个int型数组的名字,也是数组的头指针int a[n]的形参n为数组a[n]中元素的个数key 是要查找的关键字*/int SequentialSearch(int *a,int n;int key){ int i; for(i = 0;i < n;i++) { if(a[i] == key) return i; } return 0;}
这里算法复杂度为O(2n),我们可以对它进行优化成:
int SequentialSearch(int *a,int n;int key){ int i; a[0] = key; i = n; while(a[i] != key) { i--; } return i;}
注意:这里我们默认了a[0]存放的不是我们要搜索数据项,所以,可以把它设置成 " 哨兵 " 。
查找-顺序表的查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。