Rust的内置`sort`使用什么排序算法?

And*_*dra -1 sorting algorithm rust

使用什么算法的内置[T]::sort方法?是否可以查看该方法的代码?

mca*_*ton 6

根据文件:

sort:

目前的实施

当前算法是由timsort启发的自适应迭代合并排序.它被设计为在切片几乎被分类的情况下非常快,或者由一个接一个地连接的两个或更多个分类序列组成.

此外,它分配临时存储大小为self的一半,但对于短切片,则使用非分配插入排序.

至于标准库的其余部分和整个编译器,源代码可以在GitHub上找到.

sort_unstable:

目前的实施

目前的算法基于Orson Peters的模式击败快速排序,它结合了随机快速排序的快速平均情况和最快的最差情况,同时在具有特定模式的切片上实现线性时间.它使用一些随机化来避免退化情况,但使用固定种子来始终提供确定性行为.

它通常比稳定排序更快,除了少数特殊情况,例如当切片由几个连接的排序序列组成时.

该源也可在GitHub上获得.

(重点是我的)