01-复杂度3 二分查找
2018-06-18 03:51:35来源:未知 阅读 ()
这道题是一道函数题,题目给好相应接口让完成该子函数。给定的函数接口和结构体定义如下:
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 10 #define NotFound 0 typedef int ElementType; typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */ }; Position BinarySearch( List L, ElementType X );
可以看出是要完成对用链表存储的一个线性表进行二分查找,完成程序如下:
Position BinarySearch(List L, ElementType X) { Position Left, Right, Mid; Left = 1; Right = L->Last; while(Left <= Right){ Mid = (Left + Right) / 2; if(X > L->Data[Mid]) Left = Mid + 1; else if(X < L->Data[Mid]) Right = Mid - 1; else return Mid; } return NotFound; }
需要注意的一点是while循环条件需是Left <= Right,否则两者指同一个数时会不进入循环判断就直接认为“NotFound”,导致结果不正确。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 從水仙花數到自戀數-01-自戀數的初識 2020-05-22
- DSA_07:递归算法 2020-03-30
- DSA_02:复杂度分析 2020-03-28
- 剑指offer65:矩阵中的路径(二维数组,二分查找) 2019-09-02
- 时间复杂度 2019-08-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash