![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Gregorian |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 18.12.2006 Репутация: нет Всего: 2 |
Изучаю методы сортировки! Мне понятны уже многие методы. Трудно конечно, т.к. все примеры написаны на не очень понятном для меня С++. Ввот взял код быстрой сортировки из википедии и что-то не врублюсь...
Объясните пожалуйста, как это работает? --------------------
Вступил на путь доморощенного жабиста дилетанта! |
|||
|
||||
| MOFA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 17.12.2006 Репутация: нет Всего: нет |
Общий принцип такой, мы случайным образом определяем число m из массива, а потом делаем следующее:
1. Устанавливаем левую границу за нулевой элемент, а правую за последний 2. За линейное время прохоим маркером по массиву и с каждым числом х проделываем операции: если (x<m) то оставляем его на месте и левую границу двигаем на позицию вправо, маркер тоже двигаем вправо если (x>m) то двигаем правую границу на позицию влево и меняем наш елемент с тем, что стоит за правой границей, маркер остается на месте если (x==m) то просто передвигаем маркер дальше И так до тех пор, пока маркер не дойдет до правой границы, после чего мы получим числа <=m слева от маркера и числа >m справа от него. Потом для этих двух подмассивов рекурсивно запускаем тот же метод. Вот в принципе и вся идея, если сложно будет разобраться, попробуй нарисовать на бумаге |
|||
|
||||
| V.A.KeRneL |
|
|||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: нет Всего: 14 |
Gregorian, насколько я понял, ты взял код отсюда: http://ru.wikipedia.org/wiki/Быстрая_сортировка
Тогда смотри подробное описание здесь: http://en.wikipedia.org/wiki/Quicksort Единственное, что понадобится, это начальные знания английского, ну или хороший переводчик!))
З.Ы. Если у тебя до сих пор (изучаешь уже quicksort) нету книжки про алгоритмы, то купи её срочно!! Это сообщение отредактировал(а) V_A_KeRneL - 21.12.2006, 03:50 -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
|||
|
||||
| Gregorian |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 18.12.2006 Репутация: нет Всего: 2 |
Спасибо за совет. Про это я пожалуй создам отдельную тема. Добавлено @ 17:23 Так и сделаю. --------------------
Вступил на путь доморощенного жабиста дилетанта! |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |