二分检索算法排序c语言
时间: 2024-09-15 10:11:28 浏览: 50
二分检索算法,也称为二分查找算法,是一种在有序数组中查找特定元素的快速搜索算法。其基本思想是将待查找区间分成两半,通过比较目标值和中间元素的大小来决定待查找的范围是中间元素的左半部分还是右半部分,然后递归或迭代地继续查找,直到找到目标值或者区间为空。
下面是使用C语言实现的二分检索算法的一个简单示例:
```c
#include <stdio.h>
int binary_search(int arr[], int l, int r, int x) {
while (l <= r) {
int m = l + (r - l) / 2;
// 检查x是否在中间
if (arr[m] == x)
return m;
// 如果x大于中间的数,则只能在右边查找
if (arr[m] < x)
l = m + 1;
// 否则,x只能在左边查找
else
r = m - 1;
}
// 如果元素不存在返回-1
return -1;
}
int main(void) {
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10;
int result = binary_search(arr, 0, n - 1, x);
if (result == -1)
printf("元素不在数组中\n");
else
printf("元素在数组中的索引为: %d\n", result);
return 0;
}
```
这段代码定义了一个`binary_search`函数,它接受一个整数数组`arr`、搜索范围的左右边界`l`和`r`,以及要查找的目标值`x`。如果找到目标值,函数返回该值在数组中的索引;如果没有找到,则返回`-1`。
阅读全文
相关推荐


















