程序员

查找

2018-10-10  本文已影响0人  ahuustcly

1. 概述

查找就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的
数据元素。

查找表按照操作方式分为:静态查找表和动态查找表。

2. 顺序查找

最基本的查找技术,适合于存储结构为顺序存储或者链式存储的线性表,时间复杂度为O(n)

int sequence_search(int a[],int n, int key)
{
    for (int i = 0; i < n; i++)
    {
        if (key == a[i]){
            return i;
        }
    }
    return -1;
}

3. 有序查找

int binary_search(int a[], int n, int key)
{
    int low = 0;
    int high = n - 1;
    int mid;
    while (low < high)
    {
        mid = (low + high) / 2;
        if (key == a[mid])
        {
            return mid;
        }
        else if (key < a[mid])
        {
            high = mid - 1;
        }
        else
        {
            low = mid + 1;
        }
    }
    return -1;
}

4. 线性索引查找

索引就是把一个关键字与它对应的记录相关联的过程。这里主要关注三种线性索引:稠密索引、分块索引、倒排索引。

5. 树查找

关于树查找请参考:

6. 哈希查找

7. 参考

大话数据结构 ---- 程杰

上一篇 下一篇

猜你喜欢

热点阅读