C语言代码中的二分法

2024-01-03 11:42:04

#include<stdio.h>
int main()
{
? ? int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
? ? int k = 7;//计算7的下标
? ? int sz = sizeof(arr) / sizeof(arr[0]);//计算元素个数
? ? int left = 0;
? ? int right = sz-1;
? ? while (left <= right)
? ? {
? ? ? ? int mid = (left + right) / 2;
? ? ? ? if (arr[mid] > k)
? ? ? ? {
? ? ? ? ? ? right = mid - 1;
? ? ? ? }
? ? ? ? else if (arr[mid] < k)
? ? ? ? {
? ? ? ? ? ? left = mid - 1;
? ? ? ? }
? ? ? ? else {
? ? ? ? ? ? printf("找到了,下标是:%d\n", mid);
? ? ? ? ? ? break;
? ? ? ? }
? ? }
? ? if (left > right)
? ? {
? ? ? ? printf("找不到\n");
? ? }
? ? return 0;
}

文章来源:https://blog.csdn.net/2301_80300263/article/details/135325036
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。