タグ

アルゴリズムに関するfatrowのブックマーク (2)

  • 番兵 - Wikipedia

    番兵(ばんぺい、英: sentinel)は基地、野営地の出入りを警備する任務に就く兵士を指す。歩哨とも言う。 転じてプログラミング用語としては、データの終了を示すために配置される特殊なデータを指す。番人(ばんにん)とも言う。以下ではこの意味について示す。 実際にはこの用語は、微妙に異なる以下の2つの意味で使われる。 実データには出現しない、データの終了を表すための専用の値 入力データを処理するループの終了条件が複数ある場合に、条件判定の数を削減するために置くダミーのデータ 主に可変長データの終了を識別するために、終了を示す記号として予約された値。 番兵の具体例としては、LISPで無効値を示すNILや、C言語の文字列終端を示すヌル文字(\0)などがある。また、ポインタを扱う言語ではヌルポインタが定義されており、線形リストや木構造などの終端を示すために使われる。 番兵を含むデータを処理するプロ

  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • 1