#include <stdio.h>

#define MAX_SIZE 100

// 折半查找算法 int binarySearch(int arr[], int n, int target) { int left = 0, right = n - 1; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] == target) { return mid; } else if (arr[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1; }

int main() { int arr[MAX_SIZE]; int n, target;

// 输入有序表的元素个数
printf("请输入有序表的元素个数:");
scanf("%d", &n);

// 输入有序表的元素
printf("请输入有序表的元素(递增排序):");
for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
}

// 输入要查找的值
printf("请输入要查找的值:");
scanf("%d", &target);

// 调用折半查找算法查找值
int result = binarySearch(arr, n, target);

// 输出查找结果
if (result != -1) {
    printf("要查找的值在有序表中的位置为:%d\n", result);
} else {
    printf("要查找的值不在有序表中\n");
}

return 0;

}

C语言实现有序表的折半查找算法

原文地址: https://www.cveoy.top/t/topic/f3YW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录