选择题:
pdqsort是基于std::sort的改进算法,当数据量小的时候用插入排序,递归深度大的时候用heapsort,其他情况用改良的quicksort
go// pdqsort 对数据 data[a:b] 进行排序。
// 该算法基于 pattern-defeating quicksort (pdqsort),但没有 BlockQuicksort 中的优化。
// pdqsort 论文:https://arxiv.org/pdf/2106.05123.pdf
// C++ 实现:https://github.com/orlp/pdqsort
// Rust 实现:https://docs.rs/pdqsort/latest/pdqsort/
// limit 是在陷入堆排序之前允许的坏(非常不平衡)枢轴的数量。
func pdqsort(data Interface, a, b, limit int) {
const maxInsertion = 12