Binäre Suche (binär) (rekursive C++-Version)

Finden Sie in der Hälfte:

Die Idee der Dichotomie
vergleicht die Zwischendaten des Intervalls mit dem Ziel und erfordert, dass die zu durchsuchende Sequenz geordnet ist.
Wenn das Ziel größer als der Median ist, wird die kleinere Hälfte der Sequenz verworfen.
Wenn das Ziel es ist kleiner als der Median ist, wird die größere Hälfte der Sequenz verworfen.


#include<bits/stdc++.h>
using namespace std;

//返回索引
int binary_search(int arr[],int l,int r,int value) {
    
    
	int mid = (l + r) / 2;
	if (arr[mid] == value)return mid;
	//注意定界,否则就会越界
	if (arr[mid] < value && mid + 1 <= r) return binary_search(arr, mid + 1, r, value);
	else if (arr[mid] > value && mid - 1 >= l)return binary_search(arr, l, mid - 1, value);
	return -1;
}

int main() {
    
    
	int arr[] = {
    
     1,2,3,4,5,6,7,8,9 };
	cout << binary_search(arr,0,8,10);
	cout << binary_search(arr,0,8,-1);
	cout << binary_search(arr,0,8,4);
	return 0;
	//结果-1 -1 3
}

Ich wollte ursprünglich eine Hash-Tabelle schreiben, aber nachdem ich darüber nachgedacht hatte, konnte ich dieses Ding nach dem Test nicht fertig schreiben. Vergiss es

Supongo que te gusta

Origin blog.csdn.net/blastospore/article/details/122109604
Recomendado
Clasificación