数据结构 折半查找法(算法思想和源代码)
来源:互联网 发布:如何升级mac os系统 编辑:程序博客网 时间:2024/06/10 14:48
Ⅰ )算法思想
首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。
重复以上步骤,直到找到满足条件的结果为止,若找不到,则返回失败。
Ⅱ)源代码
#include<stdio.h> #define MaxSize 20typedef struct{ int key;}RecordType; typedef struct{ int length; RecordType r[MaxSize + 1];}RecordList; int BinSearch(RecordList l, int key){ int low = 1; int high = l.length; //置区间初值 int mid; while (low <= high) { mid = (low + high) / 2; if (key == l.r[mid].key) { return mid; //如果要查找值key == l.r[mid].key返回mid下标 } else if (key < l.r[mid].key) { high = mid - 1; //未找到,把high往mid前移一位在前半区间查找 } else { low = mid + 1; //在后半区间查找 } } return 0;}int main(){ RecordList L = { 10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; //初始化线性表 printf("%d\n", BinSearch(L, 30)); //查找30所在的下标 return 0;}
阅读全文
0 0
- 数据结构 折半查找法(算法思想和源代码)
- 数据结构 顺序查找(算法思想和源代码)
- 实现折半查找的算法(数据结构)
- 数据结构与算法-折半查找(二分查找)
- 数据结构算法之--折半查找(二分查找BinarySearch)
- <数据结构与算法>二分查找(折半查找)
- 查找算法(1)折半查找法
- Python实现各类数据结构和算法---折半查找
- 【数据结构与算法】折半查找算法(二分法)
- 数据结构查找算法之折半查找
- 数据结构与算法-查找-折半查找
- 算法:折半查找法
- 算法:折半查找法
- 第十四周--数据结构-折半查找(算法实现)
- 数据结构之线性查找和折半查找
- 数据结构---顺序查找和折半查找
- 数据结构与算法13:折半查找、差值查找和斐波那契查找
- 【数据结构----笔记1】查找算法之【顺序查找和折半查找】
- 大数据-时下已经大火的技术
- [NOIP模拟][规律探究]弹球
- 判断字符串是否是回文
- 透视变换实现代码(全)
- linux每天一命令: chmod 修改档案权限
- 数据结构 折半查找法(算法思想和源代码)
- [NOIP模拟][匈牙利算法][费用流]放盒子
- CentOS7 yum源 快速转 阿里云
- 电脑怎么进入BIOS界面
- ImageNet Classification with Deep Convolutional Neural Networks
- (M)Backtracking:40. Combination Sum II
- NOIP模拟:Box(费用流)
- cron定时任务
- Vue中引入ElementUI库