Go语言快速排序库

Go 语言快速排序库

Github传送门

已实现

  1. 普通快排
    • 递归版
      • 并发(SimpleQuickSortParallelRecursive),稳定在并发版一半的耗时,不过取决于并发阈值,我设置的是规模不小于10240个数据时并发,小于就直接普通递归.
      • 非并发(SimpleQuickSortRecursive).
    • 非递归版(SimpleQuickSortNonRecursive),用栈实现
  2. 双基准快排(Dual Pivot QuickSort)
  3. 三路快排递归
    • 非并发版(3 Way-QuickSort)
  4. 四路快排递归,面向接口,可以对提供比较函数的结构体进行排序,前面的都是int类型的排序.
    • 并发版(General 4-Way QuickSort),规模为10240000时出错,1024000以下正常,还没找出问题所在……

待实现:

面向接口的排序,优化并发,并提供更多非递归版排序.

Test data set is random generated, and the size is 1024000.

  • SimpleQuickSortNonRecursive: 160.49007ms
  • SimpleQuickSortRecursive: 133.908357ms
  • SimpleQuickSortParallelRecursive: 82.000214ms
  • 3 Way-QuickSort: 126.305748ms
  • Dual Pivot QuickSort: 157.054738ms
  • General 4-Way QuickSort: 122.222119ms

你可能感兴趣的:(Go,Learning)