配列内の数字を探します

整数の規則的な配列に所望の数を検索し、リターン指数(バイナリサーチ)を見つけ

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int num;
	scanf("%d", &num);
	int left = 0;
	int right = 10;
	while (left <= right){
		int mid = (left + right) / 2;
		if (num < arr[mid]){
			right = mid - 1;
		}
		else if (num>arr[mid]){
			left = mid + 1;
		}
		else{
			printf("%d\n", mid);
			break;
		}
		if (left == right){
			printf("没找到!\n");
		}
	}
	system("pause");
	return 0;
}

このコードは、バイナリ検索を主に理解されている最初のあなたは範囲を見つけるための中間値を表すために半ばの境界を見つけるの電流を示すために(右から左)の変数を定義し、考えている、あなたは半ば比較の数を見つける必要がある、廃棄未満であります[半ば、右]、あなたは半ば同数のを見つけたいまで、[左、中央]を放棄するよりも大きいが。状況を考慮する必要はありません場合

おすすめ

転載: blog.csdn.net/sun_105/article/details/93497362
おすすめ