![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Kruger2 |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Не совсем понимаю что делает функция binarySearch
Low и High это встроенные команды? т.е. они действительно ищут наименьшее и наибольшее, либо в данном случае это просто переменные?
a [] {1, 2, 3, 4,5} (1+5)/2=3 значит лоу и хай это всё таки наименьшее и наибольшее?
Откуда взялся массив б мидл? и что он выводит?
для чего тут служит цикл фор? Что выводит программа я видел, запустил и увидел. Но каким образом выводится нижняя часть мне непонятно, поэтому прошу помочь понять это ![]() Это сообщение отредактировал(а) Kruger2 - 17.1.2011, 18:33 |
||||||||||
|
|||||||||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
просто переменные.. Добавлено через 1 минуту и 56 секунд
при чем тут значения содержимого массива ? нужны ведь только его индексы.. т.е. (0+4) /2 = 2; ![]() Добавлено через 3 минуты и 13 секунд b[middle] это одно из значений массива b[] , который был передан в функцию.. Добавлено через 6 минут и 36 секунд хм.. как для чего ? для того чтоб в определенном диапазоне проитерировать i, и в зависимости от его значения вывести нужное.. |
||||
|
|||||
БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: нет Всего: 17 |
||||
|
||||
Albor |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Данная функция осуществляет бинарный поиск (метод деления пополам) в массиве. Массив, в котором осуществляется поиск, должен быть отсортирован. Не удивительно, что смысл не понятен. Прототип функции должен быть либо таким:
Возвращаемое значение может быть не индексом, а указателем на найденный элемент – чаще всего это удобнее, ведь ищем мы обычно для того, чтобы что-то сделать с этим элементом. |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
параметры бывают разными ![]() ![]() |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Но ведь ни переменной low ни high не присвоено никакое начальное значение, как она определяет, что является лоу, а что хай?
if (i < low || i > high) если i меньше че лоу (опять таки непонятно чему равно это лоу? где его начальное значение?) И i больше хай (зачем и? мол i= middle? но чему равно мидл, если лоу+хай неизвестны и их надо разделить на 2? else printf("%3d ", b[i]); есть условие, если >, <, и =, откуда ещё элс? третий вариант бывает? if (searchKey == b[middle]) searchKey тоже не присвоено никакое значение, как он узнает, что он равен массиву б, в индексе middle, который мне тоже непонятно чему равен? |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Функция main(), вызывая binarySearch(), передаёт в неё параметры, в том числе и low и hight. Естественно, в main() эти переменные называются по другому, а внутри binarySearch() превращаются в low и hight. То же самое пороисходит и с массивом. Теперь понятно? |
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
Непонятно, что бы начать вычисления лоу и хай должны же быть чему то равны? ну какой то цифре или индексу?
а так получается чему то равно, но чему непонятно. откуда берутся данные для этой переменной? ведь какие то данные в первоначальных вычислениях должны быть? Добавлено через 9 минут и 50 секунд
Объявили переменные low, high и middle пока лоу < хай middle = (low + high) /2; т.е. берется случайно число лоу и случайно хай и сравнивается? так что ли? вызываем функцию printRow |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Я так понимаю - разбираемся чисто теоретически, дебаггер отсутствует? Берём твой код и добавляем коментарии:
|
|||
|
||||
Kruger2 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 9.1.2011 Репутация: нет Всего: нет |
вооот, теперь понял, спасибо
![]() ![]() ![]() надо было раздел с функциями читать внимательнее ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |