2017-01-01から1ヶ月間の記事一覧

BloomFilterについて調べてみた

BloomFilterとは Wikipedia にも記載されていますが、ある要素が集合に属しているかを検査できるフィルタです。 一番最初に思いつく実装としては、こんな感じでしょうか。 集合の先頭から順に要素を比較していく 途中で見つかれば「属している」 最後まで見…

Golangでソートアルゴリズムのベンチマークを書いてみる

前回はテストを書いたので、今回はベンチマークです。対象アルゴリズムは前回同様、以下7つのソートアルゴリズムです。 バブルソート 選択ソート 挿入ソート シェルソート マージソート クイックソート ヒープソート ベンチマークの書き方 Go言語標準のtest…

Golangでソートアルゴリズムのテストを書いてみる

背景 先日書いた記事 にてクイックソートのバグをご指摘頂きました。 実装中は適当に入力値を変えてソートがうまくできていることを確認していたものの、実装して満足してしまったためにバグが混入していました。 やはり テストはしっかり書かなくてはいけな…

基本的なソートアルゴリズムをGolangで実装してみた

2017/1/14 修正 intelf000さんのご指摘を受け、クイックソートについて、以下のバグを修正しました。 (合わせてsliceが参照渡しであることにも注意し、実装を改めています) [内容] a[left], a[right], pivotが同一の値となった場合に panic: runtime error: …

Golangで言語処理100本ノック2015 第1章: 準備運動

Golangで言語処理100本ノック2015 第1章: 準備運動 言語処理100本ノック 2015の第1章: 準備運動の10問です。 00. 文字列の逆順 文字列"stressed"の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ. gist09251fc66515bb60f15d58721c08466a rune(int…