我用谷歌搜索,但我没有找到有关SAS中proc sort
幕后算法的信息?例如,在Python中,sort()
使用timsort 。
正如Stu所观察到的那样,proc sort是闭源的,所以我们能做的最好就是推测。话虽如此,我怀疑排序算法的选择至少取决于以下因素,而不是在所有情况下只使用一种算法:
proc sort
语句中使用的设置 - 特别是noequals
(要求稍快但不稳定的排序),tagsort
和threads
。sortsize
和memsize
系统选项定义的可用于排序的内存量。sortpgm
和其他相关系统选项调用任何第三方排序引擎(例如sortcutp
),而不是SAS默认排序引擎。值得注意的是,SAS已经存在了很多代计算机硬件,并且排序算法的最佳选择在很大程度上取决于硬件。即使是冒泡排序理论上也可以在足够老的系统上实现最佳。我非常希望SAS能够解决这类问题。