北京理工大學上機題——二分查找

北京理工大學上機題——二分查找

題目描述:
二分查找{-36,-25,0,12,14,29,35,47,76,100},對上述十個數進行二分查找
測試用例:
請輸入要查找的數據:14 14是第5個數,查找次數爲1
請輸入要查找的數據:-25 -25是第2個數,查找次數爲2
請輸入要查找的數據:121 查找失敗

二分查找也叫折半查找,有關折半查找介紹:折半查找

#include<iostream>
using namespace std;
void search(int num[], int n, int searchNum) {
	int count = 0;
	int first = 0, end = n - 1;
	bool find = false;
	int mid;
	while (first <= end && !find) {
		count++;
		mid = (first + end) / 2;
		if (searchNum == num[mid]) {
			find = true;
			break;
		}
		else if (searchNum < num[mid]) {
			end = mid - 1;
		}
		else {
			first = mid + 1;
		}
	}
	if (find) {
		cout << searchNum << "是第" << mid + 1 << "個數,查找次數爲" << count << endl;
	}
	else
		cout << "查找失敗" << endl;
}
int main() {
	int num[10] = { -36,-25,0,12,14,29,35,47,76,100 };
	int searchNum;
	int count = 3;
	while (count) {
		cout << "輸入要查找的數據:";
		cin >> searchNum;
		search(num, 10, searchNum);
		count--;
	}
	return 0;
}

運行測試結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章