【发布时间】:2015-06-12 03:42:00
【问题描述】:
我有一个函数,当给定一个由 N 个整数组成的零索引数组 A,按非降序排序,以及某个整数 X 时,在 A 中查找 X。如果 X 存在于 A 中,则它返回一个正索引在 A 中出现 X。否则,函数返回 -1。
它应该像这样工作:
- 如果我有 A[0]=1、A[1]=1 和 X=1,它应该返回 0,因为 A[0]=1。
但它没有返回我想要的。有人能帮我吗? 这是我的代码:
int Number(int *A, int N, int X) {
int r, m, l;
if (N == 0) {
return -1;
}
l = 0;
r = N - 1;
while (l < r) {
m = (l + r) / 2;
if (A[m] > X) {
r = m - 1;
} else {
l = m;
}
}
if (A[l] == X) {
return l;
}
return -1;
}
【问题讨论】:
-
什么是错误或错误输出
标签: c algorithm binary-search