繁体   English   中英

如何在 C 中的日期字符串中对字符串日期进行二分搜索?

[英]How can I binary search a String date in a string of dates in C?

我在格式为 YYYY-MM-DD 的字符串日期数组中使用二进制搜索算法时遇到问题

  1. key - 算法正在寻找的日期。
  2. *日期- 字符串日期数组
  3. numRows - * 中的元素数日期)

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM