C++折半查找法练习
来源:互联网 发布:收银 知乎 编辑:程序博客网 时间:2024/05/24 02:23
#include <iostream>using namespace std;int main(){const int N=10; int left,right,middle,x; int a[N]={2,5,6,8,9,12,24,32,38,40};cout << "输入个要查找的数: "; cin>>x; for (left=0,right=N-1;left<=right;){ middle=(left+right)/2; if (x==a[middle]) break; else if (x<a[middle]) right=middle-1; else left=middle+1;} if (x==a[middle]) cout<<"a["<<middle<<"]="<<x<<endl; else cout<<"查找不到"<<x<<endl; return 0;}
==================================================================================================================================
以下内容来自网络
原理:类似于二分法解方程,二分查找首先比对序列中间的数是否是要找的数,如果不是,由于是有序数列,则看其在左侧区间还是右侧区间,舍弃不在的那一半区间,然后在剩余的区间重复刚才的办法,直到找到该数,由于每次舍弃一半的数据量,所以查找效率较高。
描述:设三个变量 left,right,middle分别为序列的两侧下标和中间下标,当判断出不在左侧区间,则 left=middle+1 ,从而利用右侧一半构造出一个新区间,否则 right=middle-1,利用左边一侧构造新区间,然后重复刚才过程,如此下去,要么找到数据,要么left>right,此时也应该停止查找,说明序列中没有该数。
0 0
- C++折半查找法练习
- C语言折半查找法
- 折半查找法/C语言版
- 折半查找(二分法 练习)
- 折半查找法---C语言实现
- 折半查找法(C语言)
- C语言简单实现折半查找法
- 用c语言编写折半查找法
- 折半查找 c
- C语言 -- 折半查找
- C语言 折半查找
- C语言 折半查找
- 【C语言】折半查找。
- 折半查找(c语言)
- 【C语言】 折半查找
- C语言:折半查找
- C、C++ 折半查找
- 【C语言】折半查找
- oracle之pl/sql编程
- MySQL:having的作用
- leetcode笔记:Validate Binary Search Tree
- 一次bug死磕经历之Hbase堆内存小导致regionserver频繁挂掉
- leetcode之Unique Paths
- C++折半查找法练习
- SQL学习(四)
- 初识 MongoDB
- linux的shell脚本的通配符使用方法
- MongoDB在Windows 平台的安装
- android 事件机制图文详解-从源码角度分析彻底理解事件传递机制(上)
- 百度杀毒 v5.0 正式版
- MAVEN项目标准目录结构
- FolderSizes v8.0.91