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

     1 #include <stdio.h>
     2 
     3 int binarySearch(int *array, int length, int num);
     4 int main(int argc, const char * argv[]) {
     5     
     6     int array[] = {1, 2, 3, 4, 5};
     7     
     8     int length = sizeof (array) / sizeof(int);
     9     
    10     int a = binarySearch(array, length, 4);
    11     
    12     printf("%d
    ",a);
    13     
    14     return 0;
    15 }
    16 
    17 int binarySearch(int *array, int length, int num)
    18 {
    19     int low = 0;
    20     int high = length - 1;
    21     while (low <= high)
    22     {
    23         int middle = (low + high) / 2;
    24         
    25         if (array[middle] == num)
    26         {
    27             return middle;
    28         }
    29         else if(array[middle] > num)
    30             high = middle - 1;
    31         else
    32             low = middle + 1;
    33     }
    34     return 0;
    35 }

    二分查找算法就是不断将数组进行对半分割,每次拿中间元素和要查找的元素进行比较;总数是偶数时,中间元素就是靠前的一个。比较之后,根据结果确定要查找的元素在前半部分还是后半部分。然后继续循环比较。

  • 相关阅读:
    CMD命令提示符的基本操作指令
    JDBC连接Oracle
    JDBC连接MySQL
    Oracle树状结构的存储与展示
    C语言 深入学习
    C# widget
    C#深入多线程
    数据库常用知识
    ASP.NET开发总结
    ASP.NET —— Web Pages
  • 原文地址:https://www.cnblogs.com/yaann/p/4201912.html
Copyright © 2011-2022 走看看