Re: Соpтиpовка

From
Andrey Tarasevich ()
To
Andrey Belyakov
Date
2002-05-02T03:10:18Z
Area
RU.ALGORITHMS
From: Andrey Tarasevich <atarasevich@telocity.com>

Andrey Belyakov wrote:
> ...
> Массив можно также рассматривать, как набор элементов, доступ к
> которым обеспечивается нумерацией элементов.

Доступ на основе нумерации элементов можно организовать для любой
последовательно доступаемой структуры данных. Тем не менне это не делает
такую структуру данных массивом.

> В случае строк произвольной длины это определение более рационально.
> Однотипность элементов и доступ за O(1) операций не являются обязательными.

Неправильно. Требование произвольного доступа (random access) является
фундаментальным свойством структуры данных "массив" и заключается в
обеспечении индексного доступа за время O(1). Это _обязательное_
требование.

> > Ответ:
> > Да, такое определение соответствует условиям задачи. Причем, подобный
> > выбор параметра строки в качестве элемента рабочего массива, позволяет
> > осуществлять операцию перестановки любых двух элементов массива без
> > дополнительных затрат времени и ресурсов; следовательно, является
> > оптимальным.
> Уже нет. Заменена задача сортировки массива _произвольных_ строк т.е.
> сущностей по определению различных, 
> на сортировку массива указателей
> на строки(символы) т.е. сущностей одинаковых.

Нонсенс. Изменение содержимого строки никак не меняет строку, как
сущность. Задача сортировки массива произвольных строк является задачей
сорировки массива одинаковых сущностей. Задачи сортировки произвольно
различающихся сущностей не существует и существовать не может.

И еще раз: строка в С существует только на уровне интерпретации.
Указатель на символ в С, при соблюдении некоторых требований, является
строкой.

> > 5. Произвольные строки можно отсортировать только пузырьком?
> > Ответ: Нет, не только.
> Напишите это. Без построения дополнительных массивов указателей на
> строки. Пусть даже не будет ограничения на буфер для одной строки.

Я уже привел пример сортировки массива std::string-ов.

Best regards,
Андрей.
--- ifmail v.2.15dev5
 * Origin: good enough (2:5020/400)