MST

星途 面试题库

面试题:Go语言中如何对基本类型切片进行排序

在Go语言里,给定一个整数切片 `[]int`,请编写代码对其进行升序排序。同时说明使用到的标准库函数及其原理。
27.9万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
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 函数对这个经典算法进行了优化,在处理小数组时切换到插入排序以减少递归调用带来的开销,在数据接近有序时采用堆排序以避免快速排序的最坏时间复杂度情况,从而在各种情况下都能有较好的性能表现。