C # Сортировка Вопрос - PullRequest
       8

C # Сортировка Вопрос

2 голосов
/ 20 апреля 2010
  • Интересно, какую структуру данных C # лучше всего использовать для эффективной сортировки?
  • Это List или Array или как?
  • А почему стандартный массив [] не реализует в нем метод сортировки?

Спасибо

Ответы [ 5 ]

3 голосов
/ 20 апреля 2010

Эффективность сортировки зависит от объема данных и правил сортировки. Нет однозначного ответа на ваш вопрос.

Класс array [] реализует сортировку. Смотрите здесь . Это статический метод, который должен называться Array.Sort.

3 голосов
/ 20 апреля 2010

Можно сортировать списки и массивы, как и другие структуры данных.

Эффективность сортировки зависит от того, какие данные вы сортируете, и какой алгоритм сортировки вы используете.

Этот сайт дает хорошую демонстрацию различных алгоритмов сортировки (нажмите на зеленую стрелку, чтобы начать демонстрацию).

2 голосов
/ 20 апреля 2010

Используйте общий список, он имеет встроенный Сортировка

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

1 голос
/ 20 апреля 2010

На самом деле, если список сильно меняется, возможно, вам следует сохранить его в порядке с SortedList.

Если сортировка происходит только один раз. И затем, реальная действительность: если вы сортируете в памяти, любой O (n * Ln (n)) будет достаточно. Вы не заметите никакой разницы между List, Array или чем-либо еще.

1 голос
/ 20 апреля 2010

Реализация по умолчанию - быстрая сортировка для контейнеров, таких как List <>. Быстрая сортировка о O (n * Ln (n)). В большинстве случаев это хороший выбор. Он немного медленнее для небольших объемов данных, чем алгоритмы O (n * n), и иногда не очень хорош для специальных типов данных, где вам лучше использовать специальные алгоритмы сортировки (предположим, вы можете реализовать их самостоятельно или использовать рамки d party)

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