• 数据结构--查找


    查找 (Searching),也称 检索 ,查表,就是在大量的信息集中寻找一个特定的信息元素。


    查找就是根据 给定的关键字值,在 查找表中确定一个关键字等于给定的 记录或数据元素。若存在这样的数据元素,则称查找成功的,否则查找不成功。

    查找是许多重要的计算机程序中 最耗费时间的部分,查找算法的优劣密切关系着查找操作的速度。

    顺序查找最简单的查找技术     但是特别慢。

    既适用于以顺序存储结构查找表的查找,也适用于以链式存储结构查找表的查找。


    二分查找

    #include "stdafx.h"
    #include <conio.h>
    #include <stdlib.h>
    #define LISTSIZE 100
    typedef int DataType;
    typedef struct
    {
    DataType data[LISTSIZE];
    int nLength;
    }SeqList;
    void Print(SeqList* _p)
    {
    for(int i=0;i<_p->nLength;i++)
    {
    printf("%d ",_p->data[i]);
    }
    printf(" ");
    }
    int BSearch(SeqList* _pList,DataType _key)
    {
    int nLow=0;
    int nHigh=_pList->nLength-1;
    int middle=0;
    while(nLow<=nHigh)
    {
    middle=(nLow+nHigh)/2;
    if(_pList->data[middle]==_key)
    return middle;
    else if(_pList->data[middle]>_key)
    nHigh=middle-1;
    else
    nLow=middle+1;
    }
    return -1;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
    SeqList* q=(SeqList*)malloc(sizeof(SeqList));
    q->nLength=8;
    q->data[0]=10;
    q->data[1]=11;
    q->data[2]=19;
    q->data[3]=21;
    q->data[4]=22;
    q->data[5]=30;
    q->data[6]=32;
    q->data[7]=122;
    int num=32;
    Print(q);
    printf("%d",BSearch(q,num));
    _getch();
    return 0;
    }
  • 相关阅读:
    归并排序
    快速排序
    希尔排序
    插入排序
    选择排序
    冒泡排序
    排序算法
    Win10 家庭版升级到专业版报错
    WPF 原生Style
    在线图片转换
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3304084.html
Copyright © 2020-2023  润新知