Лучше всего сортируя алгоритмы для C#/.NET в различных сценариях

Использование std::move из :

#include 
#include 

void foo(std::string && s) { std::cout << s; }

void bar(std::string && s) { foo(std::move(s)); }

int main() {

  bar("abc");

  return 0;
}

std::move - это на самом деле просто немного синтаксического сахара , но это распространенный способ пересылки ссылки на rvalue .

33
задан Dan Esparza 4 November 2008 в 16:47
поделиться

3 ответа

Проверьте этот сайт: Сравнения Сортировки с Анимациями

Короткий ответ: Быстрая сортировка

Более длинный ответ: вышеупомянутый сайт покажет Вам достоинства и недостатки каждого алгоритма с некоторыми изящными анимациями.

короткий ответ, там является не лучшим все вокруг вида (кроме Вас, знал что, так как Вы сказали, что 80% времени :)), но Быстрая сортировка (или 3 Пути Быстрая сортировка), вероятно, будет лучшим общим алгоритмом, который Вы могли использовать.

Это - алгоритм, используемый по умолчанию для Списков в .NET, таким образом, можно просто звонить .Sort, если то, что Вы имеете, уже находится в списке.

существует псевдокод веб-сайта, я указал на Вас на вышеупомянутый, если Вы хотите видеть, как реализовать это.

43
ответ дан 27 November 2019 в 18:21
поделиться

Что Вы пытаетесь отсортировать? Есть ли любая причина не использовать:

List<T>.Sort() ? 

я уверен, что это использует QuickSort, и Вы не должны волноваться о совершении никаких ошибок кодирования. Можно реализовать IComparable для изменения то, на чем Вы хотите отсортировать.

, Если все Ваши данные не умещаются в памяти... хорошо, Вы прочь к гонкам с Сортировкой слиянием или чем-то вдоль тех строк.

9
ответ дан 27 November 2019 в 18:21
поделиться
0
ответ дан 27 November 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: