大家好,我是小百,我来为大家解答以上问题。顺序查找的平均查找长度怎么算,顺序查找很多人还不知道,现在让我们一起来看看吧!
1、顺序查找的基本思想 基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键宇和给定值K相比较。
2、若当前扫描到的结点关键字与K相等,则查找成功;若扫描结束后,仍未找到关键字等于K的结点,则查找失败。
3、 2、顺序查找的存储结构要求 顺序查找方法既适用于线性表的顺序存储结构,也适用于线性表的链式存储结构(使用单链表作存储结构时,扫描必须从第一个结点开始)。
4、 3、基于顺序结构的顺序查找算法 (1)类型说明 typedef struct{ KeyType key; InfoType otherinfo; //此类型依赖于应用 }NodeType; typedef NodeType SeqList[n+1]; //0号单元用作哨兵 (2)具体算法 int SeqSearch(Seqlist R,KeyType K) { //在顺序表R[1..n]中顺序查找关键字为K的结点, //成功时返回找到的结点位置,失败时返回0 int i; R[0].key=K; //设置哨兵 for(i=n;R[i].key!=K;i--); //从表后往前找 return i; //若i为0,表示查找失败,否则R[i]是要找的结点 } //SeqSearch ④顺序查找的优点 算法简单,且对表的结构无任何要求,无论是用向量还是用链表来存放结点,也无论结点之间是否按关键字有序,它都同样适用。
5、 ⑤顺序查找的缺点 查找效率低,因此,当n较大时不宜采用顺序查找 索引查找分两步进行: ① 将外存上含有索引区的页块送人内存,查找所需记录的物理地址 ② 将含有该记录的页块送人内存 注意: ①索引表不大时,索引表可一次读入内存,在索引文件中检索只需两次访问外存:一次读索引,一次读记录。
6、 ②由于索引表有序,对索引表的查找可用顺序查找或二分查找等方法。
7、 索引查找主要针对文件的。
本文到此讲解完毕了,希望对大家有帮助。