面试题答案
一键面试package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 9, 1, 5, 6}
sort.Ints(nums)
fmt.Println(nums)
}
使用到的标准库函数是 sort.Ints
,它的原理是:
sort.Ints
函数实现了对int
类型切片的排序,它使用的是快速排序算法的变体。快速排序是一种分治算法,其基本思想是通过选择一个基准元素,将数组分为两部分,左边部分的元素都小于基准元素,右边部分的元素都大于基准元素,然后递归地对左右两部分进行排序,最终使整个数组有序。sort.Ints
函数对这个经典算法进行了优化,在处理小数组时切换到插入排序以减少递归调用带来的开销,在数据接近有序时采用堆排序以避免快速排序的最坏时间复杂度情况,从而在各种情况下都能有较好的性能表现。