zoukankan      html  css  js  c++  java
  • 二分查找

    非递归实现


    代码:

    Position BinarySearch(List L, ElementType X) {
        Position mid,start, end;
        start = 1;
        end = L->Last;
        mid = (1 + L->Last) / 2;
    //     if (X ==  L->Data[mid])
    //         return mid;
        while (1) {
            if (X ==  L->Data[mid])
                return mid;
            else if (X <  L->Data[mid]) {
                end = mid - 1;
                mid = (start + end) / 2;
            }
            else if (X >  L->Data[mid]) {
                start = mid + 1;
                mid = (start + end) / 2;
            }
            else {
                
            }
            if(start>end)
                break;//这里注意退出条件!条件错误无法退出
        }
        return NotFound;
    }

    其中List结构定义如下:

    typedef int Position;
    typedef struct LNode *List;
    struct LNode {
        ElementType Data[MAXSIZE];//增序
        Position Last; /* 保存线性表中最后一个元素的位置 */
    };
  • 相关阅读:
    字段操作
    数据操作
    表操作
    数据库操作
    如何连接mysql
    mysql新增用户和修改用户密码
    表和库和服务器的关系
    MySql的复合类型
    yum软件源
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/yaotong0830/p/14254656.html
Copyright © 2011-2022 走看看