IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> сортировка двухпутевой вставкой
сообщение
Сообщение #1


Гость






Мальчики, пожалуйста, дайте код сортировки двухпутевой вставкой. Пожалуйста!!!!Оень нужно!!!!!!!!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Ребята, помогите, ну просто очень нужно!!!
Впервые метод двухпутевых вставок был предложен в начале 50-х годов как метод, позволяющий сократить число необходимых перемещений (по сравнению с простыми вставками). Число пересылок можно сократить примерно в 2 раза до N/8, если допустить сдвиги элементов не только вправо, но и влево. Для выходного файла резервируется место в памяти, равное 2N+1 ,где N – число элементов в исходном файле. Первый элемент пересылается в середину выходного файла. В дальнейшем элементы выходного файла сдвигаются вправо или влево в зависимости от того, в какую сторону нужно сдвигать меньше элементов, то есть туда, где удобнее. Таким образом, удается сократить примерно половину времени работы за счет некоторого усложнения программы. Но этот метод можно применять, используя памяти не больше, чем требуется для N записей
№ 0 1 2 3 4 5 6 7 8 9 503 087 512 061 908 170 897 275 653 426 Процесс сортировки выглядит следующим образом:
Во входном массиве определяем элемент, который больше всего подходит, для помещения его в середину области вывода (№0 503)
Определяем количество элементов в выходном массиве, превышающих и не превышающих 503
503
Устанавливаем положение следующего элемента (№1 087) Сравниваем запись №1 с левой границей (087<503) 087 - левая граница в выходном массиве
087 503
Сравниваем запись №2 с правой границей Запись №2 - новая правая граница
0 1 2 3 4 5 6 7 8 9
503 087 512 061 908 170 897 275 653 426 087 503 512
Сравниваем запись №3 с левой границей 61 - левая граница в выходном массиве
061 087 503 512
Сравниваем запись №4 с правой границей Запись №4 - новая правая граница

0 1 2 3 4 5 6 7 8 9
503 087 512 061 908 170 897 275 653 426 061 087 503 512 908
Сравниваем запись №5 с левой границей. Сравниваем запись №5 с правой границей Находим место для записи №5 - позиция 5. Производим сдвиг.

061 087 503 512 908
Сравниваем запись №5 с левой границей. Сравниваем запись №5 с правой границей Находим место для записи №5 - позиция 5. Производим сдвиг.

061 087 503 512 908
Вставляем запись №5 в позицию 5
061 087 170 503 512 908
Дальше продолжаем аналогично
И так сортируем до конца ряда. В результате должна получиться последовательность:
061 087 170 275 426 503 512 653 897 908

 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 23:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name