Подсчитать количество сравнений в алгоритме бинарного поиска - C#
Формулировка задачи:
Здравствуйте, у меня есть массив слов words в котором мы будем находить необходимые слова, с помощью массива wordsForFind, слова нужно находить с помощью бинарного поиска, вот что реализовано: сам метод бинарного поиска для слов
и вот как он вызывается:
это просто кусок кода, она работает, но мне нужно завести счётчик который бы искал количество сравнений при поиске, его нужно где то в самом методе , где то в while поместить? (в коде в методе самом видно переменную counter) я так пробовал , но я не знаю правильно ли + мне нужно как то на консоль этот счетчик вывести я пробовал просто в конце метода написать Console.Writeline() но ничего не выводит, так как делаю неправильно , можете плиз направить в нужное русло? Спасибо
Листинг программы
- 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.");
- }
- }
так в каком месте правильнее написать counter?
Решение задачи: «Подсчитать количество сравнений в алгоритме бинарного поиска»
textual
Листинг программы
- int counter;
- results = searchString(words, wordsForFind[key], out counter);
- Console.WriteLine(counter);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д