zoukankan      html  css  js  c++  java
  • [刷题] 二分查找

    浙大mooc习题:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 #define MAXSIZE 10
     5 #define NotFound 0
     6 typedef int ElementType;
     7 
     8 typedef int Position;
     9 typedef struct LNode *List;
    10 Position BinarySearch( List L, ElementType X );
    11 
    12 struct LNode {
    13     ElementType Data[MAXSIZE];
    14     Position Last; /* 保存线性表中最后一个元素的位置 */
    15 };
    16 
    17 List ReadInput(); /* 裁判实现,细节不表。元素从下标1开始存储 */
    18 Position BinarySearch( List L, ElementType X );
    19 
    20 int main()
    21 {
    22     List L;
    23     ElementType X;
    24     Position P;
    25 
    26     L = ReadInput();
    27     scanf("%d", &X);
    28     P = BinarySearch( L, X );
    29     printf("%d
    ", P);
    30 
    31     return 0;
    32 }
    33 Position BinarySearch( List L, ElementType X ){
    34     int p = 0;
    35     int l = 1;
    36     int r =  L->Last;
    37     int num = r/2;
    38     while(num--){
    39         int mid = (l + r)/2;
    40         if(L->Data[mid] == X){
    41             p = mid;
    42             break;
    43         }
    44         else if(L->Data[r] == X){
    45             p = r;
    46             break;
    47         }
    48         else if(L->Data[mid] > X)
    49             r = mid;
    50         else if(L->Data[mid] < X)
    51             l = mid;
    52     }
    53     if(p == 0)
    54         return NotFound;
    55     return p;
    56 }
  • 相关阅读:
    matplotlib基础
    numpy基础
    池化层的前向计算
    卷积神经网络应用于MNIST数据集分类
    用tensorflow的Eager执行模式
    tensorboard网络结构
    优化器
    交叉熵
    [webpack]——loader配置
    [webpack]--webpack 如何解析代码模块路径
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10632917.html
Copyright © 2011-2022 走看看