zoukankan      html  css  js  c++  java
  • 数据结构查找-二分查找

    二分查找是只适用于有序的序列,每次都缩小一半查找范围的查找方法。

    二分查找也叫做折半查找。

    步骤:

    首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置将表分成前后两个子表。

    重复以上步骤。

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 int binarysearch(int *array,int key,int low,int high)
     5 {
     6     int mid;
     7     while(low<=high)
     8     {
     9         mid = (low + high)/2;
    10         if(key == array[mid])
    11             return mid;
    12         else if(key<array[mid])
    13             high = mid-1;
    14         else
    15             low = mid+1;
    16     }
    17     return 0;
    18 }
    19 int main()
    20 {
    21     int n,i,key,position;
    22     int *array;
    23     printf("input size of array:
    ");
    24     scanf("%d",&n);
    25     array = (int*)malloc(sizeof(int)*n);
    26     printf("input data as asc");
    27     for(i=0;i<n;i++)
    28         scanf("%d",&array[i]);
    29     printf("input what you want:
    ");
    30     scanf("%d",&key);
    31     if(position = binarysearch(array,key,0,n-1))
    32         printf("the position of %d is %d
    ",key,position);
    33     else
    34         printf("no exist %d",key);
    35     return 0;
    36 }
  • 相关阅读:
    SQL 拾遗
    PowerDesigner技巧
    进步
    'data.csv'
    System.Web”中不存在类型或命名空间名称script /找不到System.Web.Extensions.dll引用
    要学的技术
    Sql 表变量
    Tomcat 7.0的配置
    开发工具
    jQuery UI Dialog
  • 原文地址:https://www.cnblogs.com/niceforbear/p/4533553.html
Copyright © 2011-2022 走看看