Подсчитать количество сравнений в алгоритме бинарного поиска - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, у меня есть массив слов words в котором мы будем находить необходимые слова, с помощью массива wordsForFind, слова нужно находить с помощью бинарного поиска, вот что реализовано: сам метод бинарного поиска для слов
  public static int searchString(String[] names, String key) {
  int first = 0;
    int counter = 0;
    int last  = names.Length;
 
    while (first < last) {
        int mid = (first + last) / 2;
        if (key.CompareTo(names[mid]) < 0) {
            last = mid;
        } else if (key.CompareTo(names[mid]) > 0) {
            first = mid + 1;
        } else {
            return mid;
        }
        counter++;
    }
    return -(first + 1);

}
и вот как он вызывается:
int results;
            for (int key = 0; key < wordsForFind.Length; key++)
          {
              results = searchString(words, wordsForFind[key]);
          if (results >= 0) {
              Console.WriteLine(wordsForFind[key] + " is at index " + results);
         }
         else {
             Console.WriteLine(wordsForFind[key] + " is not in the array.");
    }
         
}
это просто кусок кода, она работает, но мне нужно завести счётчик который бы искал количество сравнений при поиске, его нужно где то в самом методе , где то в while поместить? (в коде в методе самом видно переменную counter) я так пробовал , но я не знаю правильно ли + мне нужно как то на консоль этот счетчик вывести я пробовал просто в конце метода написать Console.Writeline() но ничего не выводит, так как делаю неправильно , можете плиз направить в нужное русло? Спасибо
так в каком месте правильнее написать counter?

Решение задачи: «Подсчитать количество сравнений в алгоритме бинарного поиска»

textual
Листинг программы
int counter;
results = searchString(words, wordsForFind[key], out counter);
Console.WriteLine(counter);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы