C练习——二分法查找有序数组

发布时间 2023-12-21 19:53:32作者: 王小龙s
// 使用 二分法 折半查找,每次查找少一半数据,效率高
#include <stdio.h> int subscript(char arr[], int x, int y) { int left = 0; int right = x - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] < y) { left = mid + 1; } else if (arr[mid] > y) { right = mid - 1; } else { return mid; } } return -1; } //输入:数组,数组长度,6 //返回:6的下标, 无则-1 int main() { int k = 6; char arr1[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr1) / sizeof(arr1[0]); printf("数组元素个数%d\n", sz); int res = subscript(arr1, sz, k); printf("6的下标:%d\n", res); return 0; }