Алгоритм Хора, нужен алгоритм |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Алгоритм Хора, нужен алгоритм |
PROGRAMMER_LAMER |
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: HJHJ Репутация: 0 |
нужен алгоритм хора сортировки массива с двумя фиксироваными елементами
|
Altair |
Сообщение
#2
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Хоара может ? если да то вот:
Сортировка Хоара (4) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
PROGRAMMER_LAMER |
Сообщение
#3
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: HJHJ Репутация: 0 |
Типа этого тока с двумя фиксированными точками
|
Altair |
Сообщение
#4
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата Типа этого тока с двумя фиксированными точками Это как ? вся суть алгоритма заключается в фиксировании 1 точки, а разделении на 2 части... Может я и не прав, (тогда рано или поздно меня поправят) но посмею заявить что сортировки Хоара с 2 точками нет! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
PROGRAMMER_LAMER |
Сообщение
#5
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: HJHJ Репутация: 0 |
Есть препод требует
|
Altair |
Сообщение
#6
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Как ты себе это представляешь ? Спроси у препода что он под этим понимает.
Вот иллюстрация алгоритма Хоара: Цитата Дано множество {9,6,3,4,10,8,2,7} Берем 9 в качестве базового элемента. Сравниваем 9 с противоположностоящим элементом, в данном случае это 7. 7 меньше, чем 9, следовательно элементы меняются местами. {7,6,3,4,10,8,2,9} Далее начинаем последовательно сравнивать элементы с 9, и менять их местами в зависимости от сравнения. {7,6,3,4,10,8,2,9} {7,6,3,4,10,8,2,9} {7,6,3,4,10,8,2,9} {7,6,3,4,9,8,2,10} - 9 и 10 меняем местами. {7,6,3,4,8,9,2,10} - 9 и 8 меняем местами. {7,6,3,4,8,2,9,10} - 2 и 9 меняем местами. После такого перебрасывания элементов весь массив разбивается на два подмножетсва, разделенных элементом 9. {7,6,3,4,8,2} {10} Далее по уже отработанному алгоритму сортируются эти подмножества. Подмножество из одного элемента естественно можно не сортировать. Выбираем в первом подмножестве базовый элемент 7. {7,6,3,4,8,2} {2,6,3,4,8,7} - меняем местами 2 и 7. {2,6,3,4,8,7} {2,6,3,4,8,7} {2,6,3,4,8,7} {2,6,3,4,7,8}- меняем местами 7 и 8 Получили снова два подмножества. {2,6,3,4} {8} А дальше все происходит аналогично... Если ты будешь использовать 2 фикс. элемента, как ты второй ьбудешь выбирать? Опиши алгоритм, обоснавание и тогда можно бюудет написать программу... пока не представляю себе возможность выбора 2 элементов. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
PROGRAMMER_LAMER |
Сообщение
#7
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: HJHJ Репутация: 0 |
два елемента беруться так n div 3 где n-длина массива
|
volvo |
Сообщение
#8
|
Гость |
To: PROGRAMMER_LAMER
n div 3 - это ОДИН элемент... Где второй, и как именно должна по-твоему происходить сортировка? |
PROGRAMMER_LAMER |
Сообщение
#9
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: HJHJ Репутация: 0 |
n div 3 -1елемент 2*(n div 3) второй елемент
т е мы расбили наш массив на 3 подмассива щас их както методом хора отсортировать |
volvo |
Сообщение
#10
|
Гость |
To: PROGRAMMER_LAMER
Это - НЕ алгоритм Хоара. Это называется "Троичное разбиение Бентли и Макклоу" |
PROGRAMMER_LAMER |
Сообщение
#11
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: HJHJ Репутация: 0 |
А ЕСТЬ ЭТО У КОГО КТО МОЖЕТ АЛГОРИТМ ДАТЬ
|
Altair |
Сообщение
#12
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
http://algolist.manual.ru/sort/mqs/fast_strings2.php
Цитата Бентли и Макклоу [2] предложили троичное разбиение, основанное на следующем инварианте цикла: ... http://www.3ka.mipt.ru/vlib/books/Programm...t_strings3.html Цитата Троичный алгоритм разбиения доставляет элегантную реализацию быстрой сортировки Хоара для составных ключей. Нижеследующий рекурсивный псевдокод сортирует последовательность s длины n, когда известно, что ее компоненты 1..d-1 равны друг другу; самый первый вызов – это, конечно sort(s, n, 1). посмотри это... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
PROGRAMMER_LAMER |
Сообщение
#13
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: HJHJ Репутация: 0 |
спасибо может и подойдет
|
Текстовая версия | 27.04.2024 5:05 |