C言語での二分探索アルゴリズムの分析

定義:

ある意味では、1回実行して残りの添え字(開始と終了)/ 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( "数値を入力してください:\ 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; 
}


おすすめ

転載: blog.51cto.com/15144773/2674893