二分法,是常用的方法,下面这里有个实例,讲述如何使用二分法写代码。
// Implementation of binary search
#include <iostream>
#include <string>
#include "vector.h"
using namespace std;
void initCityNames(Vector<string> & cities);
int findInSortedVector(string key, Vector<string> & vec);
int binarySearch(string key, Vector<string> & vec, int p1, int p2);
// 不停地使用二分法查找。
int main() {
Vector<string> cities;
initCityNames(cities);
for (string city : cities) {
int index = findInSortedVector(city, cities);
cout << city << " == " << cities[index] << endl;
}
return 0;
}
void initCityNames(Vector<string> & cities) {
cities += "Amsterdam", "Angora", "Athina", "Barcelona", "Berlin",
"Brest", "Brindisi", "Bruxelles", "Bucuresti", "