![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Mpak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 12.11.2006 Репутация: нет Всего: 7 |
В результате выполнения алгоритма массив делится на два массива, которые сортируются этим же методом и снова делятся на два массива и так далее пока не разделится на части, в которых меньше 9 элементов.
Как организовать это ветвление(разбиение)? Посоветовали работать со стеком. Что это(стек) такое? И какие функции используются? И если кто знает, что такое "Способ простой вставки" (тоже метод сортировки массива)? -------------------- В любой откомпилированной программе есть, по крайней мере, одна ошибка... P.S. А у меня их минимум две... |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Писал 2 метода сортировки на паскале.
Стэк это работа с памятью по принципу - "первый вошел - последний вышел". Хоара хорошо писать с помощью рекурсии. Каждый раз вызывается по две рекурсии. Первая от первого элемента до разделителя. Вторая - от разделителя до последнего. И ветвление до тех пор пока не получишь n массивов , в каждом из которых 1 элемент. |
|||
|
||||
| Mpak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 12.11.2006 Репутация: нет Всего: 7 |
Ок.
Спасибо. Теперь что такое рекурсия? -------------------- В любой откомпилированной программе есть, по крайней мере, одна ошибка... P.S. А у меня их минимум две... |
|||
|
||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
Рекурсия-повторный вызов метода, при этом значения между вызовами хранятся в стеке.(по крайней мере так было в JS) Щас покумекаю над алгоритмом. -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Пример рекурсии - подсчет двойки в степени N.
В теле функции n происходит вызов n=(n-1) * 2. Если прокрутишь в отладичке то поймешь что сначала функция проходит сама себя, а потом начинает собирать значения. Как бы с конца. Это и есть стэк. Сори если немножко коряво объяснил. |
|||
|
||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
Mpak, вобщем тебе надо создать список из массивов. Кол-во массивов нужно как-то регулировать.
Вобщем вот пример который просто урезает массив.
нужный вариант долго делать, но модера помогут, а я умываю руки да ксатати, размер массива (вектора) можно изменять, и вообще вектор класная вешь, но жрет память... Добавлено @ 20:59 Это конечно не алгоритм Хоара, но и уже не Хреново Это сообщение отредактировал(а) GIK - 17.12.2006, 21:00 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| Mpak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 12.11.2006 Репутация: нет Всего: 7 |
хм.... спасибо всем
Осталось дело за малым - разобратьтся в полученной информации.... -------------------- В любой откомпилированной программе есть, по крайней мере, одна ошибка... P.S. А у меня их минимум две... |
|||
|
||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
А чет тут разбиратся то Если че не понятно, спрашивай, тебе помогут -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |