二分法最简单最直观的核心代码

来源:互联网 发布:centos 6.7安装mysql 编辑:程序博客网 时间:2024/05/17 22:56
** 名    称:  二分查找法                                       ** 作    者:  张光玲                              ** 版    本:  1.0.0                                               ** 日    期:  2017-11-29                                      ** 功能描述:  二分查找法(最简单直接)#include<stdio.h>//输入数组int main(){    int arg[10],i,j,m;    for(i=0;i<10;i++)         arg[i]=++i;/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓注意:这是核心代码↓↓↓↓↓↓↓↓↓↓↓↓↓*/    for (i = 0, j = 9, m = (i + j) / 2; i <= j; m = (i + j) / 2) {    //因为我觉得看起来逻辑比较清晰,所以弄到一块去了,如果不习惯也可以分开    //m:中间的数组下标,i:前面的数组下标,j:后面的数组下标    //逻辑判断:只会是3个中的一个,等于、大于、小于        if (x == arg[m])  //如果X==中间值,那么恭喜就找到了,终止循环            break m;             else if (x < arg[m]) //或者X小于中间值,即X要在前半部分查找            j = m - 1;         else i = m + 1;     //否则X一定大于中间值,那么就要在后半部分查找    }    //  如果i==j,则说明是正常终止循环,这意味着数组里没有向匹配的值        if(i==j)                printf("没有找到\n");        else printf("找到了\n);     //否则(i!=j),就说明是提前终止循环,这意味着数组里有向匹配的值     /*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑注意:这是核心代码↑↑↑↑↑↑↑↑↑↑↑↑*///输出数组    for (i = 0; i < 10; i++)           printf("%d\t", arg[i]);    printf("\n");    return 0;}
原创粉丝点击