Bu karmaşık bir sorudur. Bir farkın gerçekleştirilmesi, iki dosya arasındaki minimum düzenleme mesafesini bulmak anlamına gelir. Yani, bir dosyayı diğerine dönüştürmek için yapmanız gereken minimum değişiklik sayısı. Bu, iki dosya arasındaki en yaygın ortak alt diziyi bulmakla eşdeğerdir ve bu, çeşitli fark programlarının temelidir. En yaygın sık karşılaşılan sorun, iyi bilinir ve google'da dinamik programlama çözümünü bulabilmeniz gerekir.
dinamik programlama yaklaşımıyla sorun (n^2) O olmasıdır. Bu nedenle büyük dosyalarda çok yavaş ve büyük, ikili dizeler için kullanılamaz. Farklı bir program yazmanın zor kısmı, problem alanınızın algoritmasını optimize ederek, makul bir performans (ve makul sonuç) elde etmenizi sağlar. Hunt ve McIlroy'un "Farksal Dosya Karşılaştırması için Bir Algoritma" adlı makalesi, Unix diff yardımcı programının erken bir versiyonunun iyi bir tanımını vermektedir.
Fark yaratacağım dosyalar çok küçük, 10 - 50 satır, yani algoritmanın hızı sorun değil. – scottm
Ve Kristo zaten O (ND) 'ye indirgeyen bir kağıttan bahsetti. – beef2k