मैं शब्द दस्तावेज़ को लागू करना चाहता हूं, यह लागू करने के लिए क्या एल्गोरिदम की आवश्यकता है?दस्तावेज diff एल्गोरिदम कैसे काम करते हैं?
उत्तर
LCS में से अधिकांश का अनुकूलन समाधान O(ND) Myer 's algorithm है, और यहाँ एक एल्गोरिथम दृष्टिकोण है जो मैं अलग कार्यालय 2007 दस्तावेजों को लागू करने के लिए प्रयोग किया जाता था। Link to algorithm paper
पेपर लिंक काम नहीं करता .. –
यह मेरे लिए काम कर रहा है: http://www.xmailserver.org/diff2.pdf – Zamicol
एक अंतर अनिवार्य रूप से a solutionlongest common sub-sequence problem पर है।
इष्टतम समाधान के लिए dynamic programming का ज्ञान आवश्यक है, इसलिए यह हल करने के लिए एक काफी जटिल समस्या है।
हालांकि, यह प्रत्यय-पेड़ का निर्माण करके भी किया जा सकता है। दोनों एल्गोरिदम here रेखांकित हैं।
आमतौर पर जब आप अपने दस्तावेज़ को अक्षर या बाइट्स की धारा मानते हैं।यहां प्रश्न शब्द दस्तावेज़ के बारे में है। इस तरह के एक एल्गोरिदम को लागू करने से पहले आपको अपने आप से पूछना होगा कि नीला 8pt वर्डाना में 'हैलो वर्ल्ड' है, लाल 10pt एरियल आदि में 'हैलो वर्ल्ड' जैसा ही है। – quosoo
हां, जाहिर है कि मूल एल्गोरिदम को ऐसे तर्कों के लिए अतिरिक्त तर्क की आवश्यकता होगी मतभेद, लेकिन एल्गोरिदम का मूल अभी भी वही होगा। –
जैसा कि बेन एस इंगित करता है, आम तौर पर सबसे लंबी आम उप-अनुक्रम समस्या को हल करके differencing समस्या को संबोधित किया जा सकता है। अधिक विशेष रूप से, Hunt-McIlroy algorithm क्लासिक एल्गोरिदम में से एक है जो समस्या पर लागू किया गया है (उदाहरण के लिए यूनिक्स 'diff उपयोगिता के कार्यान्वयन में)।
ठीक है, आमतौर पर diff
'आईएनजी आमतौर पर Longest common subsequence problem द्वारा हल किया जाता है। इसके अलावा Diff पर "विकिपीडिया लेख के Algorithm" खंड देखें:।
diff के संचालन सबसे लंबे समय तक आम subsequence समस्या
इस समस्या में सुलझाने पर आधारित है, तो आप आइटम के दो दृश्यों है :
a b c d f g h j q z a b c d e f g i j k r x y z
और आप आइटम की सबसे लंबी अनुक्रम कि बॉट में मौजूद है पता लगाना चाहते हैं एच क्रम में एच मूल अनुक्रम। यही है, आप अनुक्रम प्राप्त करना चाहते हैं जिसे से आइटमों को हटाकर पहले अनुक्रम से प्राप्त किया जा सकता है, और दूसरे अनुक्रम से अन्य आइटमों को हटाकर प्राप्त किया जा सकता है। आप भी इस अनुक्रम को तक संभव बनाना चाहते हैं। इस मामले में यह
सबसे लंबे समय तक आम subsequence यह diff की तरह उत्पादन प्राप्त करने के लिए केवल एक छोटा सा कदम है सेa b c d f g j z
है:
e h i q k r x y + - + - + + + +
जिसके अनुसार, यह सब आधारित पाठ के साथ ठीक काम करता है दस्तावेजों। चूंकि वर्ड डॉक्यूमेंट्स बाइनरी प्रारूप में प्रभावी ढंग से प्रभावी होते हैं, और इसमें कई प्रारूपण जानकारी और डेटा शामिल होते हैं, यह अधिक जटिल होगा। आदर्श रूप में, आप के रूप में यह क्षमता के लिए दस्तावेजों के बीच "अंतर" के रूप में यहाँ विस्तृत ही वचन को स्वचालित पर गौर कर सकता,:
Microsoft Word Tip: How to compare two documents for differences
एक diff एल्गोरिदम कार्यान्वयन के दो उद्देश्य हैं: संस्करणों के बीच केवल अंतर को स्टोर करने के लिए, या संस्करणों के बीच अंतर दिखाने के लिए। ये बहुत अलग हैं (कोई इरादा नहीं है)। एलसीएस आम तौर पर अंतर दिखाने के लिए प्रयोग योग्य है, लेकिन इष्टतम भंडारण के लिए, अधिक उन्नत एल्गोरिदम की आवश्यकता होती है। उदाहरण के लिए, यदि आप दस्तावेज़ के एक सेक्शन से एक बड़ा हिस्सा काटते हैं, और इसे किसी अन्य सेक्शन में पेस्ट करते हैं, तो एक अच्छा स्टोरेज एल्गोरिदम इसका पता लगाएगा और इसे स्टोर नहीं करेगा "अरे, बहुत सारे नए डेटा यहां दिखाई दिए हैं"। –
@Lasse - सहमत। चूंकि मूल प्रश्न पूछताछ शब्द दस्तावेज़ों के बारे में बात कर रहा था, इसलिए मुझे लगता है कि वे भंडारण पक्ष की बजाय भिन्नता के "दृश्य" पक्ष में अधिक रुचि रखते हैं। हालांकि, आप स्टोरेज साइड के लिए उसमें सही हैं, आप डेल्टा एन्कोडिंग/संपीड़न (http://en.wikipedia.org/wiki/Delta_encoding) आदि में देख रहे होंगे – CraigTP
- 1. Diff एल्गोरिदम
- 2. स्वचालित अनुशंसा एल्गोरिदम आमतौर पर कैसे काम करते हैं?
- 3. ASCII कला छवि रूपांतरण एल्गोरिदम कैसे काम करते हैं?
- 4. एआई एल्गोरिदम 20 प्रश्न कैसे काम करते हैं?
- 5. कुकीज कैसे काम करते हैं?
- 6. एक्जिक्यूटिव कैसे काम करते हैं?
- 7. कुकीज कैसे काम करते हैं?
- 8. ग्रीनलेट कैसे काम करते हैं?
- 9. सिग्नल कैसे काम करते हैं?
- 10. एनएफसी भुगतान कैसे काम करते हैं?
- 11. रेल_ में स्थानीय_साइन कैसे काम करते हैं?
- 12. आप svn diff में पेजर कैसे प्राप्त करते हैं?
- 13. मुझे diff एल्गोरिदम कहां मिल सकता है?
- 14. आप एक आरईएसटी एपीआई कैसे दस्तावेज करते हैं?
- 15. वाणिज्यिक सॉफ्टवेयर के लिए बाइनरी diff एल्गोरिदम
- 16. "diff मोड में दो से अधिक बफर" - आप बफर पर diff कैसे बंद करते हैं?
- 17. जीजेआईपी एल्गोरिदम कैसे काम करता है?
- 18. क्या गिट बाइनरी diff एल्गोरिदम (डेल्टा स्टोरेज) मानकीकृत है?
- 19. एक्सबॉक्स गेम अपडेट कैसे काम करते हैं?
- 20. टीमसिटी आर्टिफैक्ट पथ कैसे काम करते हैं?
- 21. पाठ differencing अनुप्रयोग कैसे काम करते हैं?
- 22. प्रोग्रामिंग में हैश कैसे काम करते हैं?
- 23. प्रत्यय पेड़ कैसे काम करते हैं?
- 24. म्यूटेक्स वास्तव में कैसे काम करते हैं?
- 25. एपीआई गेटवे कैसे काम करते हैं?
- 26. BigNums कार्यान्वयन कैसे काम करते हैं?
- 27. Django मॉडल कैसे काम करते हैं?
- 28. कोड प्रोफाइलर कैसे काम करते हैं?
- 29. जावा मॉकिंग फ्रेमवर्क कैसे काम करते हैं?
- 30. आरएसए कुंजी fobs कैसे काम करते हैं?
क्या आप इसे * शो * मतभेद, या * स्टोर * अंतर को एक इष्टतम तरीके से उपयोग करेंगे? –