我总是对我们的现代语言或框架所创造的抽象感到惊讶,甚至是那些被认为是相对较低水平的抽象,例如Objective-C / Cocoa。
我对sortedArrayUsingComparator:
上调用NSArray
时执行的排序类型感兴趣。它是动态的,比如分析环境的当前约束(特别是空闲内存)和数组的属性(长度,唯一值),并相应地选择最佳排序,或者它总是使用相同的,如Quick或Merge排序
应该可以通过分析相对于N的方法的运行时间来测试,只是想知道是否有人已经困扰过。
答案 0 :(得分:1)
这已在开发者大会上进行了描述。排序不需要任何记忆。它检查在开始或结束时是否存在已排序的数字范围或两者并利用它。如果前50,000个按降序排序,您可以问自己如何对100,000条目数组进行排序。