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;
    }

    运行:

     

  • 相关阅读:
    C#委托 delegate
    认识反射
    【译】修改大XML文件的有效方法
    学习javascript并解读JQuery
    ASP.Net用户验证的实现
    渴望
    C++中常见的一些小问题总结(一)
    struts2:关于EL能够获得action的属性
    排序算法总结
    WebService开发实例
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/13475108.html
Copyright © 2011-2022 走看看