自学内容网 自学内容网

二分查找的实现

前提:数组是有序的

#include <stdio.h>

//作用:利用二分查找法查找数据 
//返回值:数据在数组中的索引
//找到了:真实索引没找到:返回-1
int search(int arr[], int num, int len)
{
//查找范围
int min = 0;
int max = len - 1;

//利用循环进行查找
while (min <= max)
{
//确定中间位置
int mid = (min + max) / 2;
//进行比较
if (arr[mid] < num)
{
min = mid + 1;
}
else if (arr[mid] > num)
{
max = mid - 1;
}
else
{
return mid;
}
}
return -1;
}

int main()
{
int arr[] = { 7,23,79,81,103,144,147,155 };
int num = 103;
int len = sizeof(arr) / sizeof(int);
int index = search(arr, num, len);
printf("%d\n", index);
return 0;
}


原文地址:https://blog.csdn.net/thebestbp/article/details/140629050

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!