運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。
UNIXの基本的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 本稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。本稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要
外部結合~何の「外部」なのか~ 外部結合とは 外部結合(outer join)は、内部結合の次によく使われるタイプの結合です。「内部」と「外部」という名称が示唆するように、これは内部結合と対になる演算です。「内部」が「直積の部分集合」という含意を持っていたことからもある程度、類推がつくと思いますが、「外部」とはどういう意味でしょう。 そう、おわかりですね。答えは「直積の部分集合にならない」です。誤解しないでもらいたいのは、常に部分集合にならないわけではなく、「データの状態によってそういうこともある」という点です。実際にコードを実行して、結果を確認してみましょう。 外部結合には、次の3種類があります。 左外部結合 右外部結合 完全外部結合 このうち左外部結合と右外部結合は実質的には同じ機能を持っています。ただ、マスタとなるテーブルを左に書くなら左外部結合、右に書くなら右外部結合、とい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く