DCTLib ঠিক আছে, তবে এক সেকেন্ডের জন্য গণিতটি ভুলে যান।
আপনার যুক্তি অনুসারে, n -ary দ্রুত হওয়া উচিত। তবে আপনি যদি এটির বিষয়ে চিন্তা করেন তবে n -ary হ'ল নিয়মিত পুনরাবৃত্তি অনুসন্ধানের সমান (কেবল তালিকার মাধ্যমে 1 দ্বারা 1 দ্বারা পুনরায় বিবর্তিত ক্রমে)। প্রথমে আপনি তালিকার সর্বশেষ (বা শেষের পাশে) আইটেমটি নির্বাচন করুন এবং সেই মানটিকে আপনার তুলনা মানের সাথে তুলনা করুন। তারপরে আপনি সেই তালিকাটি আপনার তালিকা থেকে সরিয়ে ফেলুন এবং তারপরে নতুন তালিকার সর্বশেষ আইটেমটি চয়ন করুন, যা অ্যারেতে সর্বশেষ মানের পরের অংশ। প্রতিবার, আপনি নিজের মানটি না পাওয়া পর্যন্ত আপনি একসাথে 1 টি মান মুছে ফেলবেন।
পরিবর্তে, আপনার এটির মতো চিন্তা করা উচিত - আমি প্রতিটি পুনরাবৃত্তিকে তালিকা থেকে সর্বাধিক মানগুলি কীভাবে সরিয়ে দেব? বাইনারি অনুসন্ধানে, আপনি সর্বদা অর্ধেক তালিকাটি মুছে ফেলেন। একটি ত্রৈমাসিক অনুসন্ধানে, সম্ভাবনার (৩৩.৩৩% সম্ভাবনা রয়েছে, আসলে) আপনি তালিকার ২/৩ সরিয়ে ফেলতে পারেন, তবে এর চেয়েও বড় সুযোগ (.6 66..66%) রয়েছে যা আপনি কেবলমাত্র তালিকার ১/৩ টি অপসারণ করবেন। ও (এন) গণনা করার জন্য, আপনাকে সবচেয়ে খারাপ পরিস্থিতিটি দেখতে হবে, যা 1/3, 1/2 এর চেয়ে কম। আপনি আরও কাছাকাছি এবং এন এর কাছাকাছি যেতে, এটি আরও খারাপ হয়।
বাইনারি অনুসন্ধানের মাধ্যমে কেবলমাত্র সবচেয়ে খারাপ পরিস্থিতিই উন্নত হবে না , তবে আপনার গড় সময়ও উন্নত হবে। প্রত্যাশিত মানটি দেখে (তালিকার কোন অংশটি আমরা গড়ে তুলতে পারি), আমরা এই সূত্রটি ব্যবহার করি:
(পি_ ব্লোয়ার) এক্স (অংশটি আমরা কম হলে মুছে ফেলতে পারি) + (পি_হিগার) এক্স (অংশটি আমরা উচ্চতর হলে মুছে ফেলতে পারি) = ই
বাইনারি অনুসন্ধানের জন্য, এটি .5x.5 + .5x.5 = .5 (আমরা সর্বদা অর্ধেক তালিকাটি সরিয়ে রাখি)। ত্রৈমাসিক অনুসন্ধানের জন্য, এই মানটি .666x.333 + .333x.666 = 0.44, বা প্রতিটি পদক্ষেপে, আমরা সম্ভবত বাইনারি অনুসন্ধানের তুলনায় এটি কেবলমাত্র 44% তালিকা সরিয়ে ফেলব, এটি বাইনারি অনুসন্ধানের চেয়ে কম দক্ষ করে তোলে। এই মানটি 1/2 (তালিকার অর্ধেক) শীর্ষে পৌঁছে যায় এবং আপনি এন (বিপরীত পুনরাবৃত্তি) এবং 0 (নিয়মিত পুনরাবৃত্তি) এর কাছাকাছি পৌঁছায়।
ঠিক আছে, তাই আমি মিথ্যা বললাম..এখানে একটি সামান্য গণিত জড়িত, তবে আমি আশা করি এটি সাহায্য করে!