基础算法学习(01)-二分查找
来源:互联网 发布:java 用模板导出excel 编辑:程序博客网 时间:2024/06/05 18:54
前言
正式作为一只程序猿参加工作差不多快一年了,由于本科是自动化专业,对数据结构和算法这块实在没有计算机专业科班出身的同学来得专业,在工作中也不断发现自己的短板,于是找来经典的算法书《算法(第四版)》进行系统学习。将此博客作为笔记,一方面鞭策自己的学习历程,加深对各种算法的理解和记忆;另一方面由于《算法》一书由java实现,本人工作中一直使用的是C++,因此尽量将书中每一种算法的java实现转换成C++实现并成功运行的代码贴在这里,作为一种训练方式。希望能坚持。加油,自己!
二分查找
1、算法作用
在有序排列好的一串数据中找到某一数据是否存在,如果存在,返回索引,如果不存在,告知不存在。
2、自然语言描述
在一串有序排列好的数据中取出中间值x[mid]与待查找值z进行比较,如果z小于中间值,则在0~x[mid]中再取中间值进行比较,如果小于中间值,则在x[mid]和最大值中再取中间值进行比较。重复该过程直至完成查找。
3、C++实现
#include "test.h"using namespace std;int main() { cout << "hello myself!" << endl; int arr[10]={10,45,245,351,457,527,669,711,887,9784}; int length=sizeof(arr)/sizeof(arr[0]); int a=351; cout <<find(a,arr,length)<< endl; getchar(); return 0;}//二分查找算法int find(int key,int* a,int len){ int lo=0; int hi=len-1; while(lo<=hi) { int mid=lo+(hi-lo)/2; if(key<a[mid]) hi=mid-1; else if(key>a[mid]) lo=mid+1; else return mid; } return -1;}
阅读全文
0 0
- 基础算法学习(01)-二分查找
- 基础算法 二分查找
- 【算法基础】二分查找
- 二分查找--基础算法
- 【算法基础】二分查找
- 基础算法-二分查找
- 基础算法系列(二)查找算法之二分查找
- 算法学习-二分查找
- 算法基础(一)------ 二分查找(折半查找)
- java算法基础--二分查找
- 算法学习之二分查找
- 二分查找算法学习札记
- 算法学习之二分查找
- 排序算法学习-二分查找
- 算法学习---查找(二)-二分查找
- 数据结构基础(10)------------二分查找算法(BinarySearch)
- java(34):基础算法(3):二分查找法
- 《算法》第一章——二分查找(基础)
- C语言整数的二进制偶数位,奇数位和二进制序列的输出
- python3如何使用空格输入多个数字&如何使用input输入二维数组
- QQ登录和分享
- 字符编码
- eclipse与intellij idea中的classpath分析
- 基础算法学习(01)-二分查找
- app版本更新全过程ios
- 【python web】Flask+Echarts 实现动图图表
- 模板的包含、继承、重写
- leetcode 169|229. Majority Element 1|2
- linux下安装mysql可视化工具workbench
- 文因互联CEO鲍捷:做聊天机器人有哪些坑?
- linux系统产生随机数的6中方法
- 编译原理(一) Chomsky文法