Буквенно-цифровая сортировка - PullRequest
1 голос
/ 17 сентября 2008

Какой самый лучший / быстрый способ сортировки буквенно-цифровых полей?

Ответы [ 6 ]

1 голос
/ 17 сентября 2008

«Лучший» способ зависит от множества факторов:

  1. Вам нужно поддерживать больше, чем язык?
  2. Вам необходимо поддерживать более одного языка одновременно?
  3. Вам нужна поддержка языков, отличных от текущей операционной системы или языка пользователя? (напр., веб-приложения)
  4. Вам нужно поддерживать более одной кодировки? (Юникод, utf-16le / utf-8, кодовые страницы ANSI и т. д.)
  5. Вам нужно поддерживать длинные или сильно избыточные входы? (где предварительное вычисление или сжатие могут ускорить операции сортировки)
  6. Вам нужно поддерживать большое количество входов, например: миллион или миллиард входов?
1 голос
/ 17 сентября 2008

Ответ на ваш вопрос тесно связан с некоторыми деталями, которые вы не предоставили. «Лучший / самый быстрый» способ зависит от того, насколько длинны поля, сколько вам нужно отсортировать, сколько у вас памяти, относительная скорость диска и памяти, детали того, что в строках, ..., до тошноты .

Knuth Vol 3 содержит подробную информацию о самых разных подходах. Я не помню, обсуждает ли он Radix Sorting, но, вероятно, он это делает. Если он этого не делает, вам следует поискать ссылки на Radix Sorting. Это полезно только в узких обстоятельствах, но положительно летит там. Если у вас есть небольшой набор коротких строк, Bubble Sort будет работать лучше, чем сложные сортировки на некоторых архитектурах, из-за меньших издержек. Библиотека времени выполнения C включает в себя версию быстрой сортировки, поскольку в некоторых случаях это может быть очень эффективным алгоритмом для больших наборов данных.

Net-net, ответ: «Это зависит».

1 голос
/ 17 сентября 2008

Пузырьковая сортировка ! Шучу:)

Вероятно, вашей лучшей ставкой будет быстрая сортировка или слияние .

Оба являются O (nlogn) в отличие от O (n ^ 2) пузырьковой сортировки

1 голос
/ 17 сентября 2008

Вы не указываете свой целевой язык, но каким бы он ни был, у него должны быть надежные, встроенные методы сортировки, так что используйте один из них! Для PHP ...

Загрузка в массив и сортировка ($ array);

php sort ...

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);

foreach ($fruits as $key => $val)
{
    echo "fruits[" . $key . "] = " . $val . "\n";
}

Выход:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
0 голосов
/ 17 сентября 2008

В C # список имеет .Sort ().

Вообще QuickSort очень быстр во многих ситуациях, но всегда зависит от размера массива

Вот ссылка

0 голосов
/ 17 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...