| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Разъяснить 2 строки |
| Автор: Syltan 21.9.2009, 21:23 | ||||
Разбираюсь с алгоритмом быстрой сортировки, вроде уже разобрался но не до конца. НЕ могу понять вот эти 2 строки:
Что они делают, как их понять? Вот весь исходник:
|
| Автор: Данкинг 21.9.2009, 21:29 |
| Как их понять? Ну, цикл до тех пор, пока значение элемента массива a с индексом i меньше значения переменной p. Ну, о второй строчке догадаешься. |
| Автор: Syltan 21.9.2009, 21:35 |
| А за ним i++ тоесть перейти на следующий элемент масива? А j-- тогда что?* |
| Автор: zim22 21.9.2009, 21:37 |
очень просто. пошаговая отладка программы + листик + ручка. |
| Автор: Данкинг 21.9.2009, 21:51 |
Это увеличение значения переменной i. |
| Автор: IKM2007 21.9.2009, 21:51 |
| Syltan, читай книжки. Добавлено @ 21:52 или если лень читать книги, используй гугл и узнаешь какой оператор для чего. |
| Автор: Syltan 21.9.2009, 22:06 |
| Как запустить пошаговую отладку студия 2005? |
| Автор: 586 21.9.2009, 22:25 |
В меню: Debug->Step Into |
| Автор: Syltan 21.9.2009, 22:30 |
| Следую вашей инструкции, получаю на экран вот такое при запуске, как теперь я смогу проследить действия программы. |
| Автор: iRUSH 21.9.2009, 23:02 | ||||
| В данном случае смею предположить что исмользуеться алгоритм quick sort почитать можно http://ru.wikipedia.org/wiki/Быстрая_сортировка Если ты внимательно вкуришь в написаное(то что по ссылке), то сразу же догадаешься и найдешь решение своей проблеме, а именно:
Тут мы берем грубо говоря середину массива(опорную точку по алгоритму), далее:
тут как мы видим идет два цикла, первый от начала к опорной точке, второй наоборот от конца к опорной точке.... Ну а далее по алгоритму действуем... |
| Автор: 586 22.9.2009, 00:19 |
| Syltan, поставь BreakPoint (Debug->Toggle Breakpoint) на функции main, и запусти отладку (Debug->Start Debugging). И убедись, что версия проекта Debug а не релиз. |
| Автор: Syltan 22.9.2009, 00:19 | ||||
Спасибо,ссылочку я прочитал. Вот смотрите,строка:
Этим мы производим сравнение каждого элемента масива с серединой масива, выполняя замену,тоесть числа,меньшие середины масива, переходят в левую сторону. Но вот эта строка:
Происходит сравнение общего количества элементов масива с серединой масива,тоесть если масив сосстоит из 6 элементов,тогда будет каждый элемент с 6, с конца, спускаясь в низ, сравниваться с серединой масива? |
| Автор: ller 22.9.2009, 08:25 |
| http://ipicture.ru/Gallery/Viewfull/24105844.html 1. Ставишь дебаг, а не релиз. Это важно. 2. Тыкаешь в поле около нужной строки, появляется знак, breakpoint - точка останова 3. Тыкаешь запустить и у тебя программа останавливается на нужной строке |
| Автор: zim22 22.9.2009, 08:43 | ||
мне кажется эта версия quicksort будет легче для понимания
|
| Автор: Syltan 22.9.2009, 17:54 | ||
Проверьте, правильно ли я пояснил строку:
Происходит сравнение общего количества элементов масива с серединой масива,тоесть если масив сосстоит из 6 элементов,тогда будет каждый элемент с 6, с конца, спускаясь в низ, сравниваться с серединой масива? |
| Автор: zim22 22.9.2009, 17:59 |
проверять нет ни времени, ни желания. while работает так: повторяет блок кода до тех пор, пока условие истинно. |
| Автор: shuttle 23.9.2009, 04:38 | ||
j будет уменьшаться пока значение массива больше переменной p. while закончится a[j]<=p. |
| Автор: bsa 25.9.2009, 13:09 | ||||
|