我正在使用 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
那么这里使用什么排序算法呢?
我正在使用 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
那么这里使用什么排序算法呢?
DataView 中的 Sort 方法实现了Quicksort 算法。它选择一个任意中点,将所有低于中点的值放在左侧,将所有较高的值放在右侧。然后它递归地应用到左右部分。最终它将递归到不能被分成更小的部分的部分(即,当一个部分由单个数组成员组成时),此时排序已完成。使用大 O 表示法,我们可以说该算法在O(n log n)时间内执行,这与您对排序算法的预期效率差不多。只要排序的每次迭代都将索引集分成两个相等的部分,我们正在处理以2 为底的对数 为了证明这一切,您必须检测 System.Data 代码并使用测试工具检查运行时性能。
更新:
你可以看看Reflector Utility并关注这篇文章......它在这里都解释了DataView 排序