Define:
从某种意义上讲就是执行一次把所剩下的下标(开头和结尾)/2得一个中间量,然后进行比较找到自己想要找到的数。这样的算法会让执行过程简洁N倍。
写在前面: 我也只是个小白在博客上不断地锻炼自己,希望得到大家的喜欢,有什么问题我们共同交流,进步。
接下来我们举一个简单例子来表明我的思想。希望读者能够理解代码意思!!!!!!!
#include <stdio.h> #include <string.h> #include <Windows.h> #include <stdlib.h> int main() { int a,sz,left,right,mid; int num[]={1,2,3,4,5,6,7,8,9,10}; printf ("Please enter a number:\n"); scanf ("%d",&a); sz=sizeof(num)/sizeof(num[0])-1; //计算数组个数 left=0; //定义数组开始和结尾下标值 right=sz-1; while (left<=right) //循环体循环,需要读者自己去领悟 { mid=(left+right)/2; if(num[mid]>a) { right=mid-1; } else if(num[mid]<a) { left=mid+1; } else { printf ("找到了,下标为:%d",mid); break; } } if(left>right) { printf ("不好意思没有找到\n"); } return 0; }