2010-01-11 26 views
8

मैं जावा में एक छोटी, सरल प्रत्यय वृक्ष भवन/उपयोग एल्गोरिदम की तलाश में हूं। सबसे अच्छा जो मैंने पाया है वह अब तक सेमेन्टिक डिस्कवरी टूलकिट के साथ है, लेकिन कार्यान्वयन कई हज़ार लाइन लंबी है और कई वर्गों को फैलाता है। आदर्श रूप से, कार्यान्वयन जितना संभव हो उतना छोटा होगा और कुछ सौ लाइनों से अधिक नहीं होगा।एक प्रत्यय पेड़ और उपयोग के लघु, जावा कार्यान्वयन?

क्या किसी के पास ऐसा कोई कार्यान्वयन है?

+0

नहीं, लेकिन मैंने थोड़ी देर पहले रूबी में लिखा था। यदि आप एक छोटा कार्यान्वयन चाहते हैं तो आपको शायद इसे स्वयं लिखना चाहिए ... char [] c = string.toCharArray(); के लिए (int i = c.length-1; i> = 0; i ++) रिकर्स (सी [i]) ... – twolfe18

+0

इसे उत्तर के रूप में पोस्ट करें ताकि मैं इसे ऊपर उठा सकूं। मुझे सिर्फ उस चीज की आवश्यकता है जो कागज़ की एक शीट पर फिट बैठती है जिसे मैं आसानी से संदर्भित कर सकता हूं। जल्द ही, मुझे न्यूनतम दस्तावेज के साथ कई एल्गोरिदम उत्पन्न करने में सक्षम होना चाहिए, इसलिए छोटे कार्यान्वयन अच्छे कार्यान्वयन हैं। –

उत्तर

1

कार्ककेन और सैंडर्स द्वारा "सरल रैखिक कार्य प्रत्यय ऐरे निर्माण" लेख, सी ++ की 50 पंक्तियों के साथ समाप्त होता है। आप शायद एलसीपी सरणी का उत्पादन करने के लिए कुछ भी चाहते हैं। एस और प्रत्यय सरणी पीओएस दिए गए, "रैखिक समय में एलसीपी सरणी की गणना" के लिए गुगलिंग। आपको वह मिलना चाहिए

0

आप mine भी ले सकते हैं लेकिन यह Ukkonen के एल्गोरिदम नहीं है - अन्य सभी सरल दृष्टिकोणों के रूप में, यह वर्गबद्ध समय में चलता है। मैं मानता हूं कि एक बेवकूफ एल्गोरिदम (जो छोटे अनुक्रमों के लिए ठीक काम कर सकता है) आधे दिन में लिखना आसान है।

5

मैंने बस एक प्रत्यय पेड़ के जावा कार्यान्वयन को समाप्त किया। मेरे blog entry में आप प्रत्यय पेड़ों के बारे में अधिक जानकारी प्राप्त कर सकते हैं, मेरी लाइब्रेरी का उपयोग कैसे करें, साथ ही सबवर्सन और मेवेन का उपयोग करके लाइब्रेरी डाउनलोड और निर्माण करें। हां, यह एक वर्ग फ़ाइल में केवल कुछ पंक्तियों से अधिक है, लेकिन यह अत्यधिक दस्तावेज है और वास्तविक दुनिया में व्यावहारिक उद्देश्यों के लिए उपयोग के लिए बनाया गया है। इसके अलावा, यह रैखिक समय निर्माण के लिए Ukkonen दृष्टिकोण का उपयोग करता है। (यहां नोट किए गए अधिकांश कार्यान्वयन में कम से कम ओ (एन^2) चलने का समय है।)

+0

+1 हालांकि ओपी ने मानदंड के रूप में स्केलेबिलिटी/प्रदर्शन निर्दिष्ट नहीं किया है, वे लगभग हमेशा मेरे लिए हैं; इसलिए, रैखिक समय प्राप्त करना महत्वपूर्ण है - और इस प्रकार Uknonnen के दृष्टिकोण। उन मानदंडों को शामिल करते समय, यह एक गुणवत्ता का जवाब है। – javadba

संबंधित मुद्दे