Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Дек. Сортировка сравнением и подсчетом.


Автор: AlfredAho 15.2.2011, 07:17
Доброго времени суток!

Есть задание: структура данных - дек, отсортировать элементы структуры методом "сравнение и подсчет". Примерное описание метода сортировки:

В методе подсчета сравнений используется вспомогательный массив, который обнуляется. Организуется цикл, в котором происходит подсчет для каждого элемента исходного массива количество элементов, в которые меньше данного и это число записывается в спомогательный массив (если сортировка по возрастанию). Затем берутся элементы из вспомогательного массива, они увеличиваются на 1 (это число k) и уже упорядоченый массив образуется путем постановки на k место упорядоченного массива элементов исходного массива.

Загвоздка в том, что в программе вообще нельзя использовать массив (любые дргие структуры использовать можно). Как избавиться от вспомогательного массива, я еще представляю, а вот как грамотно отсортировать дек...не понимаю. Буду рад предложениям (ссылкам по теме).

Автор: Poseidon 15.2.2011, 09:03
Не понял.

Цитата(AlfredAho @  15.2.2011,  07:17 Найти цитируемый пост)
В методе подсчета сравнений используется вспомогательный массив
 
Цитата(AlfredAho @  15.2.2011,  07:17 Найти цитируемый пост)
и это число записывается в спомогательный массив

и при этом 
Цитата(AlfredAho @  15.2.2011,  07:17 Найти цитируемый пост)
в программе вообще нельзя использовать массив

 smile 

Автор: AlfredAho 15.2.2011, 10:17
Дело в том, что я нашел описание алгоритма только при использовании массивов. Мне же требуется использовать методы дека и любой другой структуры данных, но только не массивы. 

Автор: Keeper89 15.2.2011, 10:48
Можно сделать эмуляцию через файлы.

Автор: Qu1nt 15.2.2011, 11:21
Используй списки, например.

Автор: AlfredAho 15.2.2011, 12:19
Цитата(Qu1nt @ 15.2.2011,  11:21)
Используй списки, например.

Да, я хочу их использовать, однако не понятно, как сделать вот эту вещь в списках
Цитата

Затем берутся элементы из вспомогательного массива, они увеличиваются на 1 (это число k) и уже упорядоченый массив образуется путем постановки на k место упорядоченного массива элементов исходного массива.

Автор: Qu1nt 15.2.2011, 19:01
Вероятно, для дэка нужно реализовать метод добавления элемента по индексу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)