⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 折半查找.c

📁 折半查找算法
💻 C
字号:
/*折半查找*/ 
#include <stdio.h>
#define MAXSIZE 100
typedef int KeyType;
typedef struct
{
    KeyType key;        
}ElemType;
typedef struct
{
    ElemType elem[MAXSIZE];
    int length;
}S_TBL;

int Binary_Search(S_TBL tbl,KeyType kx)
{  //在表tb1中查找关键码为kx的数据元素,若找到,返回该元素在表中的位置,否则,返回0 
    int mid,flag=0;
    int low=1,high=tbl.length;//设置初始区间 
    while(low<=high)   //表空测试 
    {    //非空,进行比较测试 
         mid=(low+high)/2; //得到中点 
         if(kx<tbl.elem[mid].key)
             high=mid-1;         //调整到左半区 
         else if(kx>tbl.elem[mid].key)
             low=mid+1;          //调整到右半区 
         else
         {
             flag=mid;
             break;
         }                        //查找成功,元素位置放到flag中 
    }
    return flag;   
}

main()
{
    S_TBL s={0,3,4,9,13,19};
    KeyType x;
    int f;
    s.length=5;
    printf("输入你要查找的数字:");
    scanf("%d",&x);
    f=Binary_Search(s,x);
    if(f!=0)
        printf("你查找的数字在第%d位",f);
    else
        printf("没找到"); 
    getch();     
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -