Ностальжи
От: PLUS Россия http://*.*
Дата: 09.04.03 17:39
Оценка:
Лет 12 назад, когда я учился в школе, учитель дал задание составить программу сортировки. А мы еще меж собой решили посоревноваться кто как выпендрится. Было несколько способов "пузырек" или там какой-нить метод Крамника-Кашпировского Я сказал что написал программу в одну строку (может две точно не помню). В Фокале (аналог Бейсика) можно было несколько команд в одну строку писать, но строка ограниченна по длине и если использовать условный переход, прога могла распасца на несколько строк.

После демонстрации программы, мне сказали что такой метод, методом сортировки не является, и вообще это все лженаучно.

Томить не буду ниже приводиться описание алгоритма.

\/
\/
\/
\/
\/
\/
\/
\/
\/
\/
\/
\/
\/
\/

Допустим надо отсортировать числа от 1 до 100. Язык уже совсем не помню, но поробую изобразить:

// Создаем пустой масссив
m[100] = 0;
// В цикле спрашиваем у пользователя 10 чисел для сортировки
for( i=1, 10); ask N; m[n] = 1; endfоr;
// Выводим их отсортированными
for( i=1, 100); if( m[i] > 0) print(i); endif; endfor;

Интересно, такой метод как-нибудь называется?
__________________
PLUS, ICQ 138726397
---------------------
Re: Ностальжи
От: fAX Израиль  
Дата: 09.04.03 17:45
Оценка: +1
Здравствуйте, PLUS, Вы писали:

PLU>Интересно, такой метод как-нибудь называется?

Counting sort (Radix sort).
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Re: Ностальжи
От: ilnar Россия  
Дата: 09.04.03 18:20
Оценка:
Здравствуйте, PLUS, Вы писали:


PLU>// Создаем пустой масссив

PLU>m[100] = 0;
PLU>// В цикле спрашиваем у пользователя 10 чисел для сортировки
PLU>for( i=1, 10); ask N; m[n] = 1; endfоr;
PLU>// Выводим их отсортированными
PLU>for( i=1, 100); if( m[i] > 0) print(i); endif; endfor;

PLU>Интересно, такой метод как-нибудь называется?


не знаю, называется или нет, но это распространенный прием сортировки объектов с ограниченно малым размером множества объектов (как сожно меньшим чем размер массива объектов).
и это совсем не жульничество, а искусный прием.
но в вашем случае есть возражения: используете памяти больше, чем сам сортируемый массив.
Re: Ностальжи
От: Doo Wah  
Дата: 09.04.03 18:33
Оценка:
этот метод называется методом проецирования. в "Программисте" (нане покойном) то ли в февральском то ли в январском номере в статье Криса Касперски упоминался как раз этот прием.
Re: Ностальжи
От: spring  
Дата: 09.04.03 18:59
Оценка:
Здравствуйте, PLUS, Вы писали:

/skip/

PLU>Интересно, такой метод как-нибудь называется?


По научному (вроде) цифровая (или числовая) сортировка
Re[2]: Ностальжи
От: PLUS Россия http://*.*
Дата: 09.04.03 20:05
Оценка:
Здравствуйте, ilnar, Вы писали:

I>но в вашем случае есть возражения: используете памяти больше, чем сам сортируемый массив.


Всякая метода чем-нибудь да страдает, однако этот алгорим можно без труда переделать так чтоб отсортировывались еще и повторяющиеся числа, и массив заранее оптимально ограничить.
__________________
PLUS, ICQ 138726397
---------------------
Re: Ностальжи
От: mrhru Россия  
Дата: 10.04.03 01:37
Оценка:
Здравствуйте, PLUS, Вы писали:
...
PLU>Томить не буду ниже приводиться описание алгоритма.
...
PLU>// Создаем пустой масссив
PLU>m[100] = 0;
PLU>// В цикле спрашиваем у пользователя 10 чисел для сортировки
PLU>for( i=1, 10); ask N; m[n] = 1; endfоr;
PLU>// Выводим их отсортированными
PLU>for( i=1, 100); if( m[i] > 0) print(i); endif; endfor;

PLU>Интересно, такой метод как-нибудь называется?


Интерпретаций может быть несколько.
Вот ещё одна: сортировка с использованием хэш-таблиц.
И как частный случай, хэш от значения совпадает с самим
значением. Так что это вполне законный метод.
Унылая, пора...
Re[3]: Ностальжи
От: ilnar Россия  
Дата: 10.04.03 06:43
Оценка:
Здравствуйте, PLUS, Вы писали:

PLU>Здравствуйте, ilnar, Вы писали:


I>но в вашем случае есть возражения: используете памяти больше, чем сам сортируемый массив.


PLU>Всякая метода чем-нибудь да страдает, однако этот алгорим можно без труда переделать так чтоб отсортировывались еще и повторяющиеся числа, и массив заранее оптимально ограничить.


не спорю, что можно, в этих случаях этот метод и хорош, НО ДО — нет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.