タグ

diffに関するbokuwebのブックマーク (4)

  • dtl - 考える人、コードを書く人

    C++なDiffライブラリ、dtlをリリースしました。 http://code.google.com/p/dtl-cpp/ 詳しくは上記のURLのSummaryやサンプルを見ていただければと思いますが、こちらでは上記に載ってないことや今後の方針や課題とかについて書こうと思います。 dtl? Diff Template libraryの略です。実は名前は前からずっとこれにしようというのがあったんですが、某友人と先輩方に全力で「それは止めておけ」とアドバイスを頂いたので、こっちにしました。 アルゴリズムはWuのO(NP)差分アルゴリズム(以下、Wuのアルゴリズム) 差分を計算するアルゴリズムにはO(NP)を使っています。 全然違うファイルの差分を取ったときの挙動 Wuのアルゴリズムに限らず、差分を計算するアルゴリズムを真面目にコードに直すと、比較するシーケンス同士が全然違う場合、プログラムがか

    dtl - 考える人、コードを書く人
    bokuweb
    bokuweb 2018/04/24
  • Diff algorithm - 枕を欹てて聴く

    id:smoking186 さんの指摘を受け, First Authorの名前などを付加しました. どうもです. 記事内のcodeは最適化などを施しておらず, 冗長に, 定義どおりに書いています. ifがまとめられたりとかしますが, そのあたりはご容赦を... Rubyでlevenshtein距離を見て以来, 個人的にdiffブームが来ていた. 計算量O(ND) / O(NP)のalgorithmなどがあるのは知っていたが, 論文(英語)および, 解説のみ, またはソースコードのみなど分かれているものが多く, algorithmに疎い自分には理解するのに大変時間がかかってしまった. しかしやっとわかったので, 解説+JS実装してみる. 解説とソースコードがセットだと, 多少はわかりやすくなるかと... 自分は正直これくらい細かく言われないとすぐにはわかんない人なので(the O(ND)だけ

    Diff algorithm - 枕を欹てて聴く
    bokuweb
    bokuweb 2018/03/14
  • Longest Common Subsequence Diff [Part 1] – Noah's Mad Lab

    Hi, Today is totally perfect day to start a new series of Algorithm blog. Since I’ve learned data structure & algorithm to prepare for next interview. I learnt tons of new amazing things, so I decide to write something for anyone who interesting Longest Common Subsequence (aka Diff) is classic problem in computer science. We’re using it everyday, but we didn’t notice. It also widely used by Revisi

    Longest Common Subsequence Diff [Part 1] – Noah's Mad Lab
    bokuweb
    bokuweb 2018/02/25
  • 差分検出アルゴリズム三種盛り - Object.create(null)

    こんばんは. 気がつけばもうずいぶんと涼しくなってきました. 勢い余って凍ってしまったりせぬよう, くれぐれも普段の言動にはお気をつけください. はじめに さて, 我々人類にはどうしても二つの文字列 (あるいは行ごとに区切られたテキスト) 間の差分を求めなければいけない瞬間が発生します. 先人たちはそういった時のために diff のようなツールを開発し, それを利用することで文明はめざましい発展を遂げてきました. しかしながら, 使用するアルゴリズムを比較検討したい場合, 「差分」の定義を変えるなどして既存のアルゴリズムに変更を加えたい場合, diff のない異世界に飛ばされて自分で実装しなければいけない時などにおいては, 差分検出アルゴリズムについての理解が必要不可欠です. というわけで, この記事では文字列間の差分検出とは何かということと, 差分を求める三種類のアルゴリズムの紹介・解説

    差分検出アルゴリズム三種盛り - Object.create(null)
  • 1