C語言中的擇中,二分查找算法解析

Define:
算法

從某種意義上講就是執行一次把所剩下的下標(開頭和結尾)/2得一箇中間量,而後進行比較找到本身想要找到的數。這樣的算法會讓執行過程簡潔N倍。  數組

寫在前面: 我也只是個小白在博客上不斷地鍛鍊本身,但願獲得你們的喜歡,有什麼問題咱們共同交流,進步。ide

接下來咱們舉一個簡單例子來代表個人思想。但願讀者可以理解代碼意思!!!!!!!spa

#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;
}
相關文章
相關標籤/搜索