1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Гость |
28.05.2008 11:44
Сообщение
#1
|
|
Гость |
Мальчики, пожалуйста, дайте код сортировки двухпутевой вставкой. Пожалуйста!!!!Оень нужно!!!!!!!!
|
![]() ![]() |
| Гость |
28.05.2008 23:09
Сообщение
#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 |
Гость сортировка двухпутевой вставкой 28.05.2008 11:44
klem4 Никогда в жизни о такой сортировке не слышал (это ... 28.05.2008 16:53
volvo Андрей, двухпутевые вставки описаны в 3-ем томе Кн... 28.05.2008 17:41
Гость Люди, Отзовитесь!!!! Помогите блон... 2.06.2008 22:28
Гость Это и есть метод двухпутевой вставки?
[/code]
prog... 6.06.2008 11:21
Айра Это - метод парных сравнений..
Какой знакомый ко... 7.06.2008 17:26
Гость Посмотрите, пожалуйста. Я что-то написала, но это ... 11.06.2008 23:57
Гость Люди добрые! помогите, пожалуйста!!... 18.06.2008 20:46
Гость Нашла код программы на С.
#include <stdlib.h... 24.06.2008 16:39
volvo Любой конвертер C->Pas на ура справляется с это... 24.06.2008 17:19
Гость Большое спасибо, ВАМ!!! Да, я думаю эт... 24.06.2008 17:56
Гость Cпасибо всем за помощь!!! Задачка реше... 25.06.2008 8:55![]() ![]() |
|
Текстовая версия | 15.11.2025 15:31 |