Здравствуйте, Atilla, Вы писали:
A>Сортировка за O(N) операций. Сортирует, правда, только массивы целых (это принципиально). Можно и для signed, но это немного посложнее будет. Можно и строки сортировать, но тогда это уже будет bucket sort
A>Так что теперь, если вашу задачу проще решать на сортированном массиве, но от вас требуют линейного времени, можете смело сортировать!
Блестяще!
Для строк (и вообще для данных размером M бит) время O(N*M), что в случае со строками, естественно, неприемлимо.
Сортировка чисел со знаком (в дополнительном коде): прикол состоит в том, чтобы по старшему биту упорядочивать наоборот: единица меньше нуля.
Сортировка вещественных чисел также возможна:
union IEEE_FLOAT_32
{
struct
{
signed int sign:1; // сначала сортируем по знаку
signed int exponent:8; // затем - по порядку
signed int mantissa:23; // и, наконец, по мантиссе
}
float value;
};