• 王道数据结构 (13) 折半查找


    伪代码:

    可运行代码:

    #include <stdio.h>
    binarySearch(int a[], int n, int key)
    {
      int low = 0;
      int high = n - 1;
      while (low <= high)
      {
        int mid = (low + high) / 2;
        int midVal = a[mid];
        printf("%d", mid);
        printf("中间值 
    ");
        if (midVal < key)
          low = mid + 1;
        else if (midVal > key)
          high = mid - 1;
        else
          return mid;
      }
      return -1;
    }
    int main()
    {
      int i, val, ret;
      int a[8] = {-32, 12, 16, 24, 36, 45, 59, 98};
      for (i = 0; i < 8; i++)
        printf("%d	", a[i]);
      printf("
    请输人所要查找的元素:");
      scanf("%d", &val);
      ret = binarySearch(a, 8, val);
      if (-1 == ret)
        printf("查找失败 
    ");
      else
        printf("查找成功 
    ");
      return 0;
    }

    结果:

    代码:

    /*
     * @Author: your name
     * @Date: 2020-08-11 13:44:12
     * @LastEditTime: 2020-08-11 13:53:55
     * @LastEditors: Please set LastEditors
     * @Description: In User Settings Edit
     * @FilePath: C-data-structure折半查找折半查找.c
     */
    #include <stdio.h>
    binarySearch(int a[], int n, int key)
    {
      int low = 0;
      int high = n - 1;
      while (low <= high)
      {
        int mid = (low + high) / 2;
        int midVal = a[mid];
        printf("%d", mid);
        printf("中间值 
    ");
        if (midVal < key)
          low = mid + 1;
        else if (midVal > key)
          high = mid - 1;
        else
          return mid;
      }
      return -1;
    }
    int main()
    {
      int i, val, ret;
      int a[11] = {7, 10, 13, 16, 19, 29, 32, 33, 37, 41, 43};
      for (i = 0; i < 8; i++)
        printf("%d	", a[i]);
      printf("
    请输人所要查找的元素:");
      scanf("%d", &val);
      ret = binarySearch(a, 8, val);
      if (-1 == ret)
        printf("查找失败 
    ");
      else
        printf("查找成功 
    ");
      return 0;
    }

    运行:

     

  • 相关阅读:
    游标+递归 查询 客户 子客户 查询财务信用
    导入EXCEL
    ftp读取txt数据并插入数据库
    查询通话时间报表
    4.10上午
    4.7下午
    4.6下午
    4.6上午
    4.5上午
    4.1下午
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/13475108.html
Copyright © 2020-2023  润新知