Java教程

查找

本文主要是介绍查找,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、顺序查找

1.无哨兵

int SequentailSearch(StaticTable* Tbl, ElemenType k)
{
    int i;
    for (i = Tbl->Length; i > 0 && Element[i] != k; i--);
    return i;
}

2.有哨兵

int SequentailSearch(StaticTable* Tbl, ElemenType k)
{
    int i;
    Tbl->Element[0] = k;//建立哨兵
    for (i = Tbl->Length(); lement[i] != k; i--);
    return i;
}

二、二分查找

注意:必须是数组存储、元素有序

int BinarySearch(List Tbl, ElemType K)
{//List 两个分量,一个是数组Element,一个是它的大小Length
    int left, right, mid, NoFound == -1;
    left = 1; right = Tbl->Length;
    while (left <= right)
    {
        mid = (left + right) / 2;
        if (K == Tbl->Element[mid])
            return mid;
        else if (Tbl->Element[mid] > k)
        {
            right = mid;
        }
        else
            left = mid;
    }
    return NoFound ;
}

 

这篇关于查找的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!