我在理解如何对char进行二进制搜索时遇到问题。我必须搜索智能手机的名称。我有这个:
typedef struct smartphone {
char name[50];
double weight;
} smartphone;
smartphone smartphone[50];
char smartphone_searched = "Xperia U";
因此,我必须对名称“ Xperia U”进行二进制搜索。有什么建议么?
最佳答案
首先,您需要根据智能手机的名称对数组进行排序(以使用二进制搜索),如下所示:
for(int i=0; i<49; i++)
{
int minIndex = i;
for(int j=i+1; j<50; j++)
{
if(strcmp(smartphone[i].name, smartphone[j].name) > 0)
minIndex = j;
}
smartphone tmp = smartphone[i];
smartphone[i] = smartphone[minIndex];
smartphone[minIndex] = tmp;
}
然后,您将使用使用strcmp的二进制搜索逻辑来找到答案。
关于c - C:二进制搜索Char(名称),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28279011/