zoukankan      html  css  js  c++  java
  • 二分查找算法

    二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列。

     1 #include<stdio.h>
     2 #define find_num 1023    //定义要查找的数
     3 int main(void)
     4 {
     5     int arry[1024];
     6     for (int i = 0; i < 1024; i++)
     7     {
     8         arry[i] = i;//二分查找要求必须是有序排列的
     9     }
    10     int up=arry[0], down=arry[1023], mid;
    11     int find_flag = 0;//定义是否查找到的标志位
    12     while (up <= down)//如果上 小于等于 下(注意必须要有等于,不然你可以试试查找1023),就查找
    13     {
    14         mid = (up + down) / 2;
    15         printf("up=%d mid=%d down=%d
    ", arry[up], arry[mid], arry[down]);
    16         if (arry[mid] == find_num)
    17         {
    18             printf("找到了
    ");
    19             find_flag = 1;
    20             break;//跳出循环
    21         }
    22         else if (arry[mid]  < find_num)
    23         {
    24             up = mid + 1;
    25         }
    26         else
    27         {
    28             down= mid - 1;
    29         }
    30     }
    31     if (find_flag == 0)
    32     {
    33         printf("没有查找到这个数
    ");
    34     }
    35     return 0;
    36 }

    在最坏的情况下,查找10次,2^10=1024;

      Analyze:

  • 相关阅读:
    C# WinForm程序退出的方法
    SpringCloud 微服务框架
    idea 常用操作
    Maven 学习笔记
    SpringBoot 快速开发框架
    html 零散问题
    Java方法注释模板
    Seating Arrangement
    hibernate 离线查询(DetachedCriteria)
    hibernate qbc查询
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/6535201.html
Copyright © 2011-2022 走看看