আমাদের কাছে প্রচুর আইটেম রয়েছে যা শেষ ব্যবহারকারী পছন্দসই অর্ডারে সংগঠিত করতে সক্ষম হবে। আইটেমগুলির সেটটি অর্ডারযুক্ত নয়, তবে প্রতিটি আইটেমে একটি সাজানোর কী রয়েছে যা পরিবর্তিত হতে পারে।
আমরা একটি অ্যালগরিদম সন্ধান করছি যা যুক্ত হওয়া বা সরানো আইটেমের জন্য একটি নতুন সাজানোর কী তৈরি করার অনুমতি দেবে যা হয় হয় প্রথম আইটেম, শেষ আইটেম বা কোনও দুটি আইটেমের মধ্যে। আমরা প্রত্যাশা করছি যে কেবল স্থানান্তরিত হচ্ছে আইটেমের সাজানোর কীটি সংশোধন করতে হবে।
একটি উদাহরণ অ্যালগরিদম হ'ল প্রতিটি সাজানোর কীটি একটি ভাসমান পয়েন্ট সংখ্যা হবে এবং দুটি আইটেমের মধ্যে কোনও আইটেম রাখার সময় বাছাই কীটি তাদের গড় হিসাবে সেট করুন। প্রথম বা শেষ পর্যন্ত কোনও আইটেম স্থাপন করা বাহ্যতম মান + - 1 নেবে।
এখানে সমস্যা হ'ল ভাসমান পয়েন্ট যথার্থতা বাছাই করতে ব্যর্থ হতে পারে। ভগ্নাংশের সংখ্যা উপস্থাপনের জন্য দুটি পূর্ণসংখ্যার ব্যবহার একইভাবে সংখ্যাগুলি এত বড় হয়ে উঠতে পারে যে তারা নিয়মিত সংখ্যাসূচক ধরণের (যেমন জেএসএন হিসাবে স্থানান্তরিত হওয়ার সময়) যথাযথভাবে প্রতিনিধিত্ব করতে পারে না। আমরা বিগিন্টস ব্যবহার করতে চাই না।
এর জন্য কি কোনও উপযুক্ত অ্যালগরিদম কাজ করবে উদাহরণস্বরূপ, স্ট্রিংগুলি ব্যবহার করে, যা এই ত্রুটিগুলি দ্বারা প্রভাবিত হবে না?
আমরা বিপুল সংখ্যক পদক্ষেপকে সমর্থন করতে চাইছি না, তবে উপরে বর্ণিত অ্যালগরিদম প্রায় 50 টি পদক্ষেপের পরে ডাবল-নির্ভুলতা ভাসমান পয়েন্ট সংখ্যাতে ব্যর্থ হতে পারে।
A, B, C
- A, AA, B, C
- A, AA, AB, B, C
- A, AA, AAA, AAB, AAC, AB, AC, B, C
। অবশ্যই, আপনি সম্ভবত আপনার অক্ষরগুলি আরও ফাঁকা রাখতে চাইবেন যাতে স্ট্রিংগুলি এত তাড়াতাড়ি বৃদ্ধি না পায় তবে এটি করা যায়।