为什么你不能在这个阵列上使用二进制搜索? int A [10] = {4,5,6,2,8,1,-1,17};
答案 0 :(得分:3)
在计算机科学中,二分搜索(也称为半区间搜索,对数搜索或二进制搜索)是一种搜索算法,用于在排序数组中查找目标值的位置。 Wikipedia 您使用的数组未排序,因此二进制搜索不起作用。
答案 1 :(得分:1)
首先要进行二进制搜索,你必须对数组进行排序。
您可以找到文档和示例here
这是另一个例子:
#include <algorithm> // std::binary_search, std::sort
#include <vector> // std::vector
int main() {
int A[10] = {4, 5, 6, 2, 8, 1, -1, 17};
std::vector<int> v(std::begin(A), std::end(A));
std::sort (v.begin(), v.end());
int n = 2;
// now you can use binary search
bool foundN = std::binary_search (v.begin(), v.end(), n);
}
答案 2 :(得分:1)
Binary search
需要排序的元素集合。例如,如果使用C ++ 11或更新版本,则可以轻松对其进行排序:
std::sort(std::begin(A), std::end(A)); // requires #include <algorithm>
答案 3 :(得分:0)
首先你需要使用任何排序机制对其进行排序