欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c语言-二分查找法

程序员文章站 2024-03-17 14:57:04
...

二分查找法(有序情况下)

int bin_search(int arr[], int len, int key) {
	int mid = 0;
	int left = 0;
	int right = len - 1;
	while (left <= right) {
		mid = (left + right) / 2;
		if (key > arr[mid]) {
			left = mid + 1;
		}
		else if (key < arr[mid]) {
			right = mid - 1;
		}
		else {
			break;
		}
	}
	if (key == arr[mid]) {
		return mid;//找到则返回下标
	}
	else {
		return -1;//找不到返回-1
	}
}
int main() {
	int a[8] = { 1,3,4,6,23,45,67,89 };
	int len = sizeof(a) / sizeof(a[0]);
	int ret;
	ret = bin_search(a, len,22);
	printf("%d\n", ret);
	system("pause");
	return 0;
}