二分查找(折半查找) 每次跳到未索引的数据段中间位置比较查找数 所遍历的数据已排序
---C语言实现
#include<stdio.h> #include<stdlib.h> #define RETURN_FAIL -1 //二分查找(折半查找) int BinarySearch(int *Src_int,int Src_len,int SearchNum) { int LowIndex; int HighIndex; int MidIndex; if(Src_int == NULL || Src_len <= 0)return RETURN_FAIL; LowIndex = 1; HighIndex = Src_len; while(LowIndex <= HighIndex) { MidIndex = (HighIndex+LowIndex)/2; if(Src_int[MidIndex] == SearchNum) { return MidIndex; } else if(Src_int[MidIndex] > SearchNum) { HighIndex = MidIndex-1; } else { LowIndex = MidIndex+1; } } return RETURN_FAIL; } int main() { int result; int test[] = {0,1,8,16,23,35,47,59}; result = BinarySearch(test,sizeof(test)/sizeof(test[0]),23); printf("%d\n",result); system("pause"); return 0; }
