二分法查找
来源:互联网 发布:单片机串口接收字符串 编辑:程序博客网 时间:2024/05/21 11:09
<span style="color: rgb(102, 102, 102); font-family: "Microsoft YaHei"; font-size: 18px; line-height: 26px;">在进行二分法查找前需要先对数据进行排序(具体排序实现详见下一篇文章),定义left(数据集的开头),right(数据集结尾)两个变量,然后在这组数据中找到mid=(left+right)/2,然后将待查找元素与mid所指元素进行比较,如果相等将索引返回,如果查找元素大于mid所指元素,则将left向右移动即left=mid+1;</span><span style="box-sizing: border-box; margin: 0px; padding: 0px; font-family: "Microsoft YaHei"; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; color: rgb(102, 102, 102); line-height: 26px; background: transparent;">如果查找元素小于mid所指元素,则将left向左移动即right=mid-1。重复以上过程直到left>right(因为此时表明并不存在待查找元素),</span>
/* * main.c * * Created on: 2016-10-21 * Author: llf05 */# include <stdio.h>int serach(int *n, int data, int size){int l = 0, num = -1;int r = size-1;while(l <= r){int mid = (r+l) / 2;if (n[mid] < data){l = mid+1;}else if (n[mid] > data){r = mid-1;}else{num = n[mid];break;}}return num;}int main(){int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};printf("%d\n", serach(a, 4, 10));return 0;}
0 0
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- Java中用到BASE64Decoder相关错误
- android studio中自定义日历
- js设计模式List
- PHP命名空间(Namespace)的使用详解
- Intellij Idea 创建Web项目入门(一)
- 二分法查找
- Eclipse使用git最基本流程,eclipsegit流程
- bash 的判断文件操作语句
- 【25.93%】【676D】Theseus and labyrinth
- Windows:NT Kernel & System占用80端口
- 在互联网时代,读书人如何更好的养活自己
- SQL 小知识点
- rails 练习01
- 数值的整数次方