• 数据结构查找-二分查找


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

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

    步骤:

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

    重复以上步骤。

     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 }
  • 相关阅读:
    业余时间决定人生
    单片机好网站
    坚持 放弃
    励志博客园网址
    资料下载好网站
    和易法
    二、栈
    一、顺序表
    uCOS任务中的OSTCBDly
    三(1)、队列(链队列)
  • 原文地址:https://www.cnblogs.com/niceforbear/p/4533553.html
Copyright © 2020-2023  润新知