zoukankan      html  css  js  c++  java
  • 二分查找完整代码例子

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 typedef int ElementType;
     5 
     6 typedef struct {
     7     int element[16];
     8     int length;
     9 }StaticTable;
    10 
    11 
    12 //二分法查找
    13 int BinarySearch(StaticTable* Tbl, ElementType K)
    14 {//在表TB了中查找关键字为K的数据元素
    15     int left, right, mid, NotFound = -1;
    16     left = 1;                //初始左边界
    17     right = Tbl->length;    //初始右边界
    18     while (left <= right)
    19     {
    20         mid = (left + right) / 2;            //计算中间元素坐标
    21         if (K < Tbl->element[mid]) right = mid - 1;        //调整有边界
    22         else if (K > Tbl->element[mid]) left = mid + 1;    //调整做边界
    23         else    return mid;        //查找成功,返回数据元素的下标
    24     }
    25     return NotFound;        //查找不成功,返回-1;
    26 }
    27 
    28 
    29 //顺序查找
    30 int Index(StaticTable *Tbl, ElementType K)
    31 {
    32     int i ;
    33     Tbl->element[0] = K;
    34     for (i = Tbl->length; Tbl->element[i] != K; i--);
    35     return i;
    36 }
    37 
    38 
    39 
    40 int main()
    41 {
    42     StaticTable * Tb1 = (StaticTable*)malloc(sizeof(StaticTable));
    43     Tb1->length = 15;
    44     for (int i = 1; i < 16; i++)
    45     {
    46         Tb1->element[i] = i + 1;
    47     }
    48 
    49     int index1 = BinarySearch(Tb1, 15);
    50     printf("%d
    ", index1);
    51 
    52     int index2 = Index(Tb1, 5);
    53     printf("%d
    ", index2);
    54     return 0;
    55 }
  • 相关阅读:
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    第一次作业
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/9504752.html
Copyright © 2011-2022 走看看