二分之——查字典

    xiaoxiao2025-03-04  9

    题目:poj2503

    题意:查字典

    解答:二分查找

    注意:strcmp的用法以及cmp函数的用法

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<string.h> #include<stdio.h> const int MAX = 100001; typedef struct { char e[11]; char f[11]; }Entry; Entry entry[MAX]; int len = 0; int cmp(const void *a, const void *b)/// { return strcmp((*(Entry *)a).f, (*(Entry *)b).f); } int BinSearch(char c[]) { int low = 0, high = len - 1; int mid, t; while(low <= high) { mid = (low + high) / 2; t = strcmp(entry[mid].f, c); if(t == 0) return mid; else if(t == -1) low = mid + 1; else high = mid - 1; } return -1; } int main() { char str[25]; int index = -1; while(gets(str)) { if(str[0] == '\0') break; sscanf(str,"%s%s",entry[len].e,entry[len].f); len++; } qsort(entry,len,sizeof(Entry),cmp); while(gets(str)) { index = BinSearch(str); if(index == -1) printf("eh\n"); else printf("%s\n",entry[index].e); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1296864.html
    最新回复(0)