আমি কিছু সময়ের জন্য আটকে ছিলাম যার উপর দ্রুততম স্ট্রিং অনুসন্ধান অ্যালগরিদম, অনেকগুলি মতামত শুনেছি, তবে শেষ পর্যন্ত আমি নিশ্চিত নই।
আমি কিছু লোককে বলতে শুনেছি যে দ্রুততম অ্যালগরিদম হলেন বায়ার-মুর এবং কেউ কেউ বলেছেন যে নুথ-মরিস-প্র্যাট আসলে দ্রুত faster
আমি উভয়ের জটিলতার সন্ধান করেছি কিন্তু তারা বেশিরভাগই একই রকম O(n+m)
। আমি দেখতে পেয়েছি যে সবচেয়ে খারাপ পরিস্থিতিতে বায়ার-মুরের O(nm)
নথ-মরিস-প্র্যাটের তুলনায় একটি জটিলতা রয়েছে যা হে (এম + 2 * এন) রয়েছে। যেখানে n = পাঠ্যের দৈর্ঘ্য এবং প্যাটার্নের দৈর্ঘ্য = m।
আমি যতদূর জানি বায়ার-মুরের ক্ষেত্রে রৈখিক-সবচেয়ে খারাপ কেস-টাইম থাকে যদি আমি গ্যালিল বিধিটি ব্যবহার করি।
আমার প্রশ্ন, সর্বোপরি আসলে সবচেয়ে দ্রুততম স্ট্রিং অনুসন্ধান অ্যালগরিদম (এই প্রশ্নটিতে কেবল বায়ার-মুর এবং নথ-মরিস-প্র্যাট নয়, সমস্ত সম্ভাব্য স্টিং অ্যালগরিদম অন্তর্ভুক্ত রয়েছে) Over
সম্পাদনা: এই উত্তরের কারণে
আমি ঠিক যা খুঁজছি তা হ'ল:
একটি টেক্সট দেওয়া T
এবং একটি প্যাটার্ন P
আমি সব চেহারাগুলো খুঁজে বের করতে হবে P
যে T
।
এছাড়াও পি এবং টি এর দৈর্ঘ্য [1,2 000 000]
এবং প্রোগ্রামটি 0.15 সেকেন্ডের মধ্যে চলতে হবে।
আমি জানি যে কেএমপি এবং রবিন-কার্প সমস্যার উপর 100% স্কোর অর্জনের জন্য যথেষ্ট তবে আমি বায়ার-মুরকে চেষ্টা করে বাস্তবায়ন করতে চেয়েছিলাম। এই ধরণের প্যাটার্ন অনুসন্ধানের জন্য সবচেয়ে ভাল হবে?