[Go] スライスをソートする

作成日: 2021年07月07日

sort パッケージの Slice 関数を使うと、スライスをソートすることができます。第 1 引数にはソートしたいスライスを、第 2 引数には比較を行う関数を渡します。下記の例では、配列 arr を昇順でソートしています。Slice 関数は安定ソートではない(同等なデータのソート前の順序が、ソート後も保存されない)ことに注意してください。

package main

import (
    "fmt"
    "sort"
)

func main() {
    arr := []int{10, 3, 15, 1, 22, 11}
    sort.Slice(arr, func(i, j int) bool {
        return arr[i] < arr[j]
    })
    fmt.Println(arr)
}

実行結果は下記のとおりです。

[1 3 10 11 15 22]
Go