ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

珠玉のプログラミング 第一部の問題をやってみて

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

「珠玉のプログラミング」の第一部を読み、問題のいくつかを実際に解いてみました。
以下、チラ裏レベルの感想などなど。。。

  • コラム1
    • 数値をビット列にした場合の扱いやすさが印象的だった。golangで実装したので、ビット列はbyteのスライスにしたが。
    • 「ビット列は『限られた範囲内にあり、密で、重複がなく、付随する情報も無いようなデータのセット』を表すのに有効」。
    • 回答とはだいぶ異なる実装となった。
  • コラム2
    • 「名前の印(シグナチャー)」と二分探索木の有効性が良く分かった。
    • 生データからプログラム内で扱い易い形の「シグナチャー」を生成して、シグナチャーを参照して検索を行う、という流れは、一つのパターンとして覚えておきたい。(今までも無意識で行っていたけど・・・)
  • コラム3
    • データ構造の重要性について説明している。この事については、常々意識している。
  • コラム4
    • 「問題の定義、アルゴリズムのデザイン、データ構造の選択、です。」「これらをきちんとしておけば、正しいコードを書くことは、大抵の場合、やさしいのです。」
    • 「プログラムの検証」については、今の時代だとユニットテストで行うかな・・・。
  • コラム5
    • この辺りの問題も、今の時代だとユニットテストを導入することで解決を図るかな・・・、と。

解いたソースはこちらです。
GitHub - SrcHndWng/go-learning-programming-pearls at part-1.0.0