从零开始打造pdqsort|青训营笔记

49 阅读1分钟

简介pdqsort

  • 是一种不稳定的混合排序算法
  • 结合三种排序的特点

pdqsort的代码实现

package main

import (
	"fmt"
	"sort"
)

func main() {
	slice := []int{5, 2, 9, 1, 3}

	// 使用pdqsort进行排序
	sort.Slice(slice, func(i, j int) bool {
		return slice[i] < slice[j]
	})

	// 输出排序结果
	fmt.Println(slice)
}

比较插入排序

package main
 
import (
   "fmt"
)
 
func InsertionSort(arr []int,n int) {
    for i := 1; i < n; i++ {
        key := arr[i]
        j := i - 1
        for j >= 0 && arr[j] > key {
            arr[j + 1] = arr[j]
            j--
        }
        arr[j + 1] = key
        fmt.Println(arr)
    }

对于短序列,使用插入排序(短序列的具体长度是12~32,在不同语言和场景中会有不同,测试选定24)