数据结构之查找运算
查找运算 查找 线性表的查找 顺序查找(都是从后往前找) 折半查找(二分查找) 分块查找(索引顺序查找) 数表的查找 哈希表(散列表的查找) 查找 查找表可分为两类 静态查找表 仅作查询和检索操作的查找表。 动态查找表 有时在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删除其“查询”结果为“在查找表中”的数据元素。 关键字 是数据元素(或记录)中某个 数据项 的值,用以标识(识别)一个数据元素(或记录)。 若此关键字可以识别唯一的一个记录,则称之谓“主关键字”。 若此关键字能识别若干记录,则称 之谓“次关键字”。 线性表的查找 顺序查找(都是从后往前找) 顺序查找方法既适用于线性表的 顺序存储结构 ,又适用于线性表的 链式存储结构 。( 无序 ) 时间复杂度为O(n)。 在不等概率查找的情况下,ASLss 在 Pn≥Pn-1≥···≥P2≥P1时取极小值 若查找概率无法事先测定,则查找过程采取的改进办法是,在每次查找之后,将刚刚查找到的记录直接移至表尾的位置上。 折半查找(二分查找) 折半查找要求线性表必须才用 顺序存储结构 ,而且表中元素按关键字 有序 排列。 时间复杂度为O(log2 n)。 算法步骤: 置查找区间初值,low为1,high为表长。 当low小于等于high时,循环执行以下操作: mid取值为low和high的中间值