2020/02 の記事一覧

container/heapの存在意義

はじめまして、MF KESSAIでバックエンドエンジニアを担当しているshoheiです。

今回はGoの開発業務で触ったcontainer/heapパッケージについての話です。

container/heapとは

Overviewを読めば分かる通り、「ヒープ」データ構造とその操作関数を提供してくれるパッケージです。

使い方も非常に簡単でインタフェースを実装したスライスにheap.Pushしていくと、heap.Popでスライス内での最小値が返却されます。 スライスを二分木構造に展開してPop時にルートにあたる最小値を返しているんですね。よくあるユースケースとして以下に時刻のソートを実装してみます。