[英]How can I binary search a String date in a string of dates in C?
我在格式为 YYYY-MM-DD 的字符串日期数组中使用二进制搜索算法时遇到问题
int binarySearchDate(StrDate key, StrDate* dates, int numRows) {
int i, left = 0, mid, right, res = -1;
StrDate transformedKey, * dummy = dates;
transformKey(key, transformedKey);
right = numRows - 1;
while (left <= right) {
mid = left + (right - 1) / 2;
printf("key: %s date: %s\n", transformedKey, dummy[mid]);
if (strcmp(transformedKey, dummy[mid]) == 0)
res = 0;
// Check if key is present at mid
if (res == 0)
return mid;
// If key is bigger, ignore left half
if (strcmp(transformedKey, dummy[mid]) > 0)
left = mid + 1;
// If key is smaller, ignore right half
else
right = mid - 1;
}
return -1;
}
我的代码有什么问题吗?
改变mid = left + (right - 1) / 2;
到mid = left + (right - left) / 2;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.