2013-04-09 3 views
1

Я использую VS2012, .NET Framework 4.5. Мне нужно знать, какой алгоритм сортировки используется в DataView.Sort?Метод сортировки данных DataView - используется алгоритм сортировки?

Мой код:

var table = new DataTable(); 
table.Columns.Add("Word"); 

table.DefaultView.Sort = "Word";//after that row, DefaultDataView is sorted 

Так что алгоритм сортировки используется здесь?

ответ

1

Метод сортировки в DataView реализует алгоритм быстрого вычисления . Он выбирает произвольную середину, помещает все значения ниже средней точки влево, а все более высокие значения - вправо. Затем он применяет себя рекурсивно к левой и правой части. В конце концов он перейдет к разделам, которые не могут быть разделены на более мелкие разделы (т. Е. Когда раздел состоит из одного элемента массива), после чего сортировка завершена. Используя примечание «большой О», мы можем сказать, что этот алгоритм выполняется в O (n log n) времени, что примерно так же эффективно, как вы можете ожидать от алгоритма сортировки. Пока каждая итерация сортировки делит набор индексов на две равные части, мы имеем дело с логарифмом базы 2 Чтобы доказать это, вам нужно будет измерить код System.Data и проверить производительность во время выполнения с помощью инструмента тестирования.

UPDATE:

Вы могли бы взглянуть на Reflector Utility и следовать за этот пост ... Его все объяснено здесь DataView Sort

+0

Цените свой ответ. Откуда вы знаете, что используется quicksort? Я пробовал рефлектор .NET, но не мог найти смысла, когда сортировка действительно имеет место. – FrenkyB

Смежные вопросы