查找--线性表(顺序、折半、索引)基础

分类

    顺序查找、折半查找(二分或对分)、分块查找(索引)

特点

    顺序表(数组)或线性链表标识的静态查找表

    表内元素之间无序

JavaScript代码实现

    顺序查找

        实现方式

                在数组的第1到第N个位置存储待筛数据,位置0则存关键字(监视哨)以检查比较次数,一般从后向前

        优缺点

                优点:无次序要求、适用不同存储结构

                缺点:ASL过长,效率低

(比较次数与key位置有关:查找i,比n-i+1次;查找失败需要比较n+1次)

    折半查找

        实现方式

                每次缩小一半的待筛区域,一般要求有序

        优缺点

                优点:相比较顺序查找效率更高

                缺点:有序,不适用线性链表

(由于是有序的,故在右更新low在左更新high;low<=hight时说明数组已经遍历过一遍了)

    分块查找(又称索引查找)

        实现方式:对待筛区域分组(并不强制要求均等分),找出每一分区的最大值(可先排序)并作记录

            创建索引表

            查找

(按照自己意淫写的,可能不够简练)

你可能感兴趣的:(查找--线性表(顺序、折半、索引)基础)