int Bin_search(int arr[], int len, int x)
{
//二分法查找,返回数据在数组中对应的下标值,若不存在,返回-1
//以循环方式实现
int left = 0;
int right = len - 1;
int mid = 0;
while (left <= right)
{
mid = left + (right - left) / 2;
if (arr[mid] == x){
return mid;
}
else if (arr[mid] < x){
left = mid + 1;
}
else{
right = mid - 1;
}
}
return -1;
}
int main(void)
{
int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int len = sizeof(arr) / sizeof(arr[0]);
printf("%d\n", Bin_search(arr, len, 5));
return 0;
}
想问一下,这个答案是中n代指啥
时间复杂度的n一般是待排序数字的个数,这里应该可以看做是arr的长度
(你并没有贴出答案,但我猜应该是一个类似O(n^2)之类的形式)
**有帮助望采纳