折半查找.txt

来自「数据结构学习用到的一些程序!!里面有二叉树相关的几个」· 文本 代码 · 共 38 行

TXT
38
字号
#include <stdio.h>
#define n 100
typedef int keytype;
typedef struct{
  keytype key;
 }nodetype;
typedef nodetype seqlist[n+1];
seqlist r;

main(){
  int m,i,j;
  keytype k;
  for(i=1;i<=n;i++) r[i].key=i;//生成递增序列1~n

  for(i=1;i<=n;i++) //输出查找的序列
   printf("%d--%d ",i,r[i].key);
  printf("\n");

  printf("input k:\n");//输入要查找的值k
  scanf("%d",&k);

  printf("search position is:%d\n",binsearch(r,k));//折半查找并输出k的位置
 }//end of main 

int binsearch(seqlist r,keytype k)
 {//折半查找
  int low=1,high=n,mid;
  while (low<=high){
    mid=(low+high)/2;
    if (r[mid].key==k) return mid;
    if (r[mid].key>k)
      high=mid-1;
    else 
      low=mid+1;
   }
  return 0;
 }

⌨️ 快捷键说明

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