4-1 二分查找 (20分)
来源:互联网 发布:深圳车险理赔数据 编辑:程序博客网 时间:2024/05/25 12:20
本题要求实现二分查找算法。
函数接口定义:
Position BinarySearch( List Tbl, ElementType K );
其中List
结构定义如下:
typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};
Tbl
是用户传入的一个线性表,其中ElementType
元素可以通过>、==、<进行比较,并且题目保证传入的数据是递增有序的。函数BinarySearch
要查找K
在Tbl
中的位置,即数组下标(注意:元素从下标1开始存储)。找到则返回下标,否则返回一个特殊的失败标记NotFound
。
裁判测试程序样例:
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 10#define NotFound 0typedef int ElementType;typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};List ReadInput(); /* 裁判实现,细节不表。元素从下标1开始存储 */Position BinarySearch( List Tbl, ElementType K );int main(){ List Tbl; ElementType K; Position P; Tbl = ReadInput(); scanf("%d", &K); P = BinarySearch( Tbl, K ); printf("%d\n", P); return 0;}
/* 你的代码将被嵌在这里 */
//代码很简单由于是函数题就没有写注释
Position BinarySearch( List Tbl, ElementType K ){ int low=1; int hig=Tbl->Last; int mid; while(low<=hig){ mid=(low+hig)/2; if(Tbl->Data[mid]==K){ return mid; } else if(Tbl->Data[mid]<K){ low=mid+1; } else if(Tbl->Data[mid]>K){ hig=mid-1; } } return NotFound;}
阅读全文
0 0
- 4-1 二分查找 (20分)
- 4-10 二分查找 (20分)
- 4-10 二分查找 (20分)
- 二分查找(20 分)
- 分冶-二分查找
- 二分查找分C++实现
- 对分查找(二分查找)
- 数据结构与算法题目集(中文)4-10 二分查找 (20分)
- PTA数据结构与算法题目集(中文)4-10 二分查找 (20分)
- 分截排序之二分查找
- 算法-对分查找(二分查找)C++实现
- 4-10 二分查找
- 算法4-二分查找
- 4-10 二分查找
- 4-10 二分查找
- 第1二分查找
- 二分查找算法1
- 二分查找变形1
- 学习计划
- Linux中线程的概念及创建应用
- const用法汇总
- Spring(6): 数据库连接
- BigInteger in Java
- 4-1 二分查找 (20分)
- 垂直居中的三种方法及其优缺点
- 交换两个变量的值,不使用第三个变量方法
- 操作系统刷题(七)
- TCP通信
- LeetCode题解–207. Course Schedule
- Kotlin -- 基本类型
- 差值 NYOJ1233 思路+代码
- 18118 勇者斗恶龙