二分查找法
来源:互联网 发布:中科院物理所考研知乎 编辑:程序博客网 时间:2024/06/06 17:15
0x00 思想
一说到算法,大家铁定说这特烧脑,其实不然,其实大家在学习语法的时候,就已经学习了这个思想和写过事例代码,只是不知道这就是二分查找法。
我举个例子就一目了然了,猜数字小程序.:指定范围随机生成一个数字,开始输入数字进行猜。如何最快猜出来?我的分析是:首先边界是确定从中间位置区分数值大了,还是小了,之后以中间位置值作为边界,继续进行。
猜数字,这是我用python写的,可以了解一下猜数字小程序,加以理解0x01 代码实现
//模拟日记记录#define log_func(msg){\do \{printf("%s \n", msg); \} while (0);\\}int SearchFunc(int* pArr, int len, int key_value){if ((NULL == pArr) || (len <= 0)){log_func("SearchFunc 参数有问题!");return -1;}int max_len = len;//5int small_len = 0;int mid_len = (max_len + small_len) / 2;while (small_len <= max_len){mid_len = (max_len + small_len) / 2;if (pArr[mid_len] > key_value){max_len = mid_len - 1;}else if (pArr[mid_len] < key_value){small_len = mid_len + 1;}else{return mid_len;}}return -1;}int main(int argc, char* argv[]){int arr[] = {1,2,3,4,5};int nLen = sizeof(arr) / sizeof(arr[0]);int index = SearchFunc(arr, nLen, 2);if (-1 == index){log_func("[error]SearchFunc");exit(1);}printf("索引的位置:%d \n", index);return 0;}
阅读全文
0 0
- 查找----二分查找法
- 二分查找法,查找string
- 二分查找法
- 二分查找法
- 二分查找法
- 二分查找法
- java 二分查找法
- 二分查找法
- 二分查找法
- 二分查找法
- 二分查找法
- java:二分查找法
- C++ 二分查找法
- 二分查找法
- 【二分查找法】
- php二分查找法
- 二分查找法
- 二分查找法
- frame与iframe的用法与区别
- Python 迭代器
- Tensorflow中怎么使用queue读取数据的情况下,在同一个session中边训练边测试
- 启动mysql的两种方式
- iOS:在界面显示gif动画图片
- 二分查找法
- 艾氏筛法搜索素数
- 枚举-OpenJudge-8469-特殊密码锁
- Unity 中禁止屏幕休眠
- C# 排列组合
- uva 10655 公式变形 矩阵快速幂
- Git 记录:git checkout HEAD -- FILENAME
- Java命名规范
- 算法二十三