算法之二分查找

mac2026-04-26  9

二分查找

原理

二分查找适用于按顺序排列的线性表,首先选取表中间位置,将其分为两个子表,将中间位置的值与指定查找的值相比较,相等则查找成功并返回,若小于指定的值,则取其右(左)子表,若大于指定的值,则取其左(右)子表,重复上述步骤,直到找到指定的值或查找失败

int binarySearch(int value,int num[],int length) { int right,left,mid; right = length - 1; left = 0; int count = 0;//记录查找次数 while(left < right) { count++; mid = (left + right) / 2; if(value < num[mid])//在左子表 { right = mid - 1; } else if(value > num[mid])//在右子表 { left = mid + 1; } else if(value == num[mid]) { return mid;//返回索引 } } return -1;//返回-1表示未找到 }
最新回复(0)