SAS proc排序算法

问题描述 投票:3回答:1

我用谷歌搜索,但我没有找到有关SAS中proc sort幕后算法的信息?例如,在Python中,sort()使用timsort

sorting sas proc
1个回答
2
投票

正如Stu所观察到的那样,proc sort是闭源的,所以我们能做的最好就是推测。话虽如此,我怀疑排序算法的选择至少取决于以下因素,而不是在所有情况下只使用一种算法:

  • SAS运行的平台
  • 用于管理源数据集和目标数据集的libname引擎。
  • proc sort语句中使用的设置 - 特别是noequals(要求稍快但不稳定的排序),tagsortthreads
  • 通过sortsizememsize系统选项定义的可用于排序的内存量。
  • 输入数据集的大小
  • 是否通过SyncSortsortpgm和其他相关系统选项调用任何第三方排序引擎(例如sortcutp),而不是SAS默认排序引擎。

值得注意的是,SAS已经存在了很多代计算机硬件,并且排序算法的最佳选择在很大程度上取决于硬件。即使是冒泡排序理论上也可以在足够老的系统上实现最佳。我非常希望SAS能够解决这类问题。

© www.soinside.com 2019 - 2024. All rights reserved.