zoukankan      html  css  js  c++  java
  • 王道数据结构 (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;
    }

    运行:

     

  • 相关阅读:
    2.HTML案例二 头条页面
    1.HTML入门
    33.1.网络编程入门
    32.原子性
    【转】风控中的特征评价指标(一)——IV和WOE
    【转】Python调用C语言动态链接库
    基于蒙特卡洛树搜索(MCTS)的多维可加性指标的异常根因定位
    正则表达式全集
    基于ray的分布式机器学习(二)
    基于ray的分布式机器学习(一)
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/13475108.html
Copyright © 2011-2022 走看看