我使用的是VS2012,.NET Framework 4.5。我需要知道使用哪种排序算法 在DataView.Sort?
我的代码:
var table = new DataTable();
table.Columns.Add("Word");
table.DefaultView.Sort = "Word";//after that row, DefaultDataView is sorted
那么这里使用的排序算法是什么?
答案 0 :(得分:1)
DataView中的Sort方法实现 Quicksort算法。它选择一个任意中点,将所有值低于中点的值放在左边,将所有值放在右边。然后它递归地应用于左侧和右侧部分。最终它将递归到不能分成较小部分的部分(即,当一个部分由单个数组成员组成时),此时排序已完成。使用big-O表示法,我们可以说这个算法在 O(n log n)时间内执行,这与你对排序算法的预期效率差不多。只要每次排序迭代将索引集分成两个相等的部分,我们就会处理对数2的对数 为了证明这一切,您必须使用测试工具检测System.Data代码并检查运行时性能。
<强>更新强>
你可以看一下Reflector Utility并关注这篇文章...这里所有解释DataView Sort