二分查表(又称:折半查表)
来源:互联网 发布:淘宝规则关于假货 编辑:程序博客网 时间:2024/05/17 08:30
二分查找法特点:1.对有序查表进行查数,其时间复杂度(O(log2 n))大大减少;
2.其算法为:每次与中间元素进行比较,如果相等,则找到,故返回该值下标; (设该查表为递增表)如果中间元素大于该数值(说明:该数在左半端; )将中间元素下标赋给右值right; 如果中间元素小于该数值,将中间元素下标赋给左值left.然后继续循环此操作,直到left = right时,结束循环,并返回 - 1
#include<stdio.h>int binary_search(int arr1[], int x, int lenth) //函数实现功能:折半查找数x,若找到返回下标,未找到则返回-1 {int left = 0;int right = lenth - 1;int tmp = 0;while (left <= right){tmp = left + (right - left) / 2; //进行每次折半操作 if (x > arr1[tmp]){left = tmp + 1;}if (x<arr1[tmp]){right = tmp - 1;}if (x == arr1[tmp])return tmp;}return -1;}int main(){int arr1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };int lenth = sizeof(arr1) / sizeof(arr1[0]); //计算数组长度 int x = 0;int ret = 0;printf("请输入要查找的数字:");scanf("%d", &x);ret = binary_search(arr1, x, lenth);if (ret != -1){printf("找到了,其下标为:%d", ret);}else{printf("未找到");}return 0;}
阅读全文
0 0
- 二分查表(又称:折半查表)
- C折半查找(又称二分查找)
- [数组][查表][折半查找]-Java第4天课程
- 第十四周 项目2 线性表的折半查
- JAVA算法之 二分查找法<又称折半查找>
- PHP有序表查找----二分查找(折半)
- 个人信息表:(增删查)
- 折半查找(二分)
- 二分(折半)查找
- codeforces888E(折半二分)
- 查表信息
- asm 查表程序
- db2 查表结构
- 查表的约束
- 二分法查表 算法
- 算法复杂度查表
- 查表数量
- 查默认表空间
- 【Leetcode-easy-543】Diameter of Binary Tree
- Python学习笔记
- MFC框架界面开发(二):框架界面的分隔窗口
- Linux操作系统课后参考答案
- c++11标准线程库用法总结
- 二分查表(又称:折半查表)
- 坚持#第214天~零基础自学云计算基础语言应用11~15节
- ClassNotFoundException:MappingJacksonHttpMessageConverter
- Android游戏入门 SurfaceView应用----手指发动小球
- 最优装载问题(贪心基础)
- mac tree命令
- mxnet 框架的搭建
- 甲级Test1002
- C#中的socket编程入门实例