C语言中的择中,二分查找算法解析

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;
}


上一篇:Swift互用性:与 C的API交互(Swift 2.0版)-b


下一篇:使用“迁移助理”迁移Mac后,MySQL报错:ERROR! The server quit without updating PID file