1. 程式人生 > >資料結構 字串二分查詢正確實現

資料結構 字串二分查詢正確實現

#include<stdio.h>
#include<string.h>

int BinarySearch(char **ch,int low, int high,char *e)
{
int mid = -1;
while(low < high-1)
{
mid = low + (high - low)/2;
if(strcmp(ch[mid],e)<=0)
low = mid;
else
high = mid;
}
if(strcmp(ch[high],e) == 0)
return high;
else if (strcmp(ch[low],e) == 0)
return low;
else
return -1;
}


int main()
{
char *ch[10] = {"aa","bb","cc","dd"};
char *e= "cc";
printf("src: ");
for(int i=0;i<4;i++)
printf("%s ",ch[i]);
printf(". des: %s\n",e);
printf("%d\n",BinarySearch(ch,0,3,e));
return 0;

}

執行結果: