C语言实现有序表的折半查找算法
#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;
}
原文地址: https://www.cveoy.top/t/topic/f3YW 著作权归作者所有。请勿转载和采集!