本文共 618 字,大约阅读时间需要 2 分钟。
#include折半查找必须是有序序列。#include int binsearch(int a[], int size, int goal){ int mid = 0; int left = 0;//第一个元素的下标 int right = size - 1;//最后一个元素的下标 while (left <= right) { mid = (left + right) / 2; if (goal > a[mid]) { left = mid + 1; } else if (goal < a[mid]) { right = mid - 1;//中间值比要寻找的值大,说明要寻找的数位于中间值的左边,再用二分法继续查找。 } else { return mid;//goal=a[mid],找到了 } } return -1;//没找到。}int main(){ int a[9] = { 11, 22, 33, 44, 55, 66, 77, 88, 99 }; int size = sizeof(a) / sizeof(a[0]); int goal = 44; int index = binsearch(a, size, goal); printf("%d\n", index); system("pause"); return 0;}
转载地址:http://rlypi.baihongyu.com/