第十四周项目1-(1)验证折半查找算法

    xiaoxiao2021-12-14  16

    问题:

    [cpp]  view plain  copy     /*   * Copyright (c)2016,烟台大学计算机与控制工程学院   * All rights reserved.   * 文件名称:项目1-1.cbp   * 作    者:朱建豪  * 完成日期:2016年12月2日   * 版 本 号:v1.0      * 问题描述:验证折半查找算法      * 输入描述:无   * 程序输出:测试数据   */     代码:

    [cpp]  view plain  copy     #include <stdio.h>     #define MAXL 100     typedef int KeyType;     typedef char InfoType[10];     typedef struct     {         KeyType key;                //KeyType为关键字的数据类型         InfoType data;              //其他数据     } NodeType;     typedef NodeType SeqList[MAXL];     //顺序表类型               int BinSearch(SeqList R,int n,KeyType k)     {         int low=0,high=n-1,mid;         while (low<=high)         {             mid=(low+high)/2;             if (R[mid].key==k)      //查找成功返回                 return mid+1;             if (R[mid].key>k)       //继续在R[low..mid-1]中查找                 high=mid-1;             else                 low=mid+1;          //继续在R[mid+1..high]中查找         }         return 0;     }               int main()     {         int i,n=10;         int result;         SeqList R;         KeyType a[]= {12,18,24,35,47,50,62,83,90,115,134},x=100;         for (i=0; i<n; i++)             R[i].key=a[i];         result = BinSearch(R,n,x);         if(result>0)             printf("序列中第 %d 个是 %d\n",result, x);         else             printf("木有找到!\n");         return 0;     }     运行结果:

    当X=90时

    当X=47时

    当X=100时

    知识点总结:

    折半查找算法的验证。

    转载请注明原文地址: https://ju.6miu.com/read-962177.html

    最新回复(0)