C语言实现二分法搜索(含完整源码)
二分法搜索是一种非常高效的搜索算法,它的时间复杂度为O(log n)。本文将介绍如何使用C语言实现二分法搜索,并附上完整的源代码。
首先,我们需要明确二分法搜索的基本思想:在一个有序数组中查找特定的元素,每次取数组中间的元素进行比较,如果中间元素等于目标元素,则直接返回;如果中间元素大于目标元素,则在左侧继续进行搜索;如果中间元素小于目标元素,则在右侧继续进行搜索,直到找到目标元素为止。
接下来,我们就可以开始书写代码了。首先,定义一个二分法搜索的函数,输入参数分别为要搜索的数组、数组的起始下标、结束下标以及要搜索的元素。函数的返回值为目标元素在数组中的下标位置,如果未找到则返回-1。具体代码如下:
int binary_search(int arr[], int start, int end, int target)
{
while (start <= end) {
int mid = start + (end - start) / 2;
if (arr[mid] == target) {
return mid;
}
if (arr[mid] < target) {
start = mid + 1;
} else {