はじめまして、MF KESSAIでバックエンドエンジニアを担当しているshoheiです。
今回はGoの開発業務で触ったcontainer/heapパッケージについての話です。
container/heapとは
Overviewを読めば分かる通り、「ヒープ」データ構造とその操作関数を提供してくれるパッケージです。
使い方も非常に簡単でインタフェースを実装したスライスにheap.Pushしていくと、heap.Popでスライス内での最小値が返却されます。 スライスを二分木構造に展開してPop時にルートにあたる最小値を返しているんですね。よくあるユースケースとして以下に時刻のソートを実装してみます。