নির্ধারণের জন্য সরল অ্যালগরিদম থেকে :BA
জন্য , মান নির্ধারণ প্রতিটি তুলনা করে থেকে জন্য
এবং যারা বেড়ে চলেছে যে সন্তুষ্ট ।k=1,…,nB(k)A(i)A(k)i=1,…,kA(i)<A(k)
এই অ্যালগরিদম অন্য ( বার), সাথে অন্যান্য ইত্যাদির সাথে এর তুলনা করে তাই মোট তুলনা সংখ্যাটি is । তবে এটি আমরা করতে পারি সেরা নয়। উদাহরণস্বরূপ, দিকে তাকানো , আমাদের কোনও তুলনা করতে হবে না! কারণ এটি প্রথম প্রাকৃতিক সংখ্যা এবং এটির গ্যারান্টেড (নির্বিশেষে নির্বিশেষে) যে নিম্ন প্রাকৃতিক সংখ্যা থাকবে। সম্পর্কে কী বলা যায় ? মাধ্যমে পরীক্ষা করার পরিবর্তে আমরা কেবল পরীক্ষা করতে পারি । এটাই:A(1)n−1A(2)n−2(n−1)(n−2)2B(n)B(n)=A(n)−1 nn−1B(n−1)A(1)A(n−2)A(n)
জন্য উপরোক্ত অ্যালগরিদম ব্যবহার; জন্য
বিপরীত অ্যালগরিদম ব্যবহার করুন: নির্ধারণ এটি প্রাথমিকভাবে সেটিং দ্বারা এবং তারপর বিয়োগ প্রতিটি এন্ট্রির জন্য জন্য যা চেয়ে কম ।k=1,…,n2k=n2,…,nB(k)A(n)−11A(i)i=k+1,…,nA(k)
এটি পদক্ষেপ, যা এখনও । এও নোট করুন যে থেকে তৈরির ক্ষেত্রে , যদি তবে ।2×(n2−1)(n2−2)2=(n−2)(n−4)4O(n2)ABB(n)=A(n)−1A(n)=B(n)+1
তবে এখন আরও জরিমানার জন্য। যদি আমাদের কিছু অতিরিক্ত স্থান বা স্থানে স্থানে অনুমতি দেওয়া হয় তবে আমরা সংখ্যাগুলি তাদের তুলনা করার সাথে বাছাই করতে পারি। উদাহরণস্বরূপ:
∣∣∣∣ASB8904803701407332219166655∣∣∣∣
তাদের সমস্তটি পরীক্ষা করার পরিবর্তে (বা তাদের ক্রমানুসারে পরীক্ষা করা) পরিবর্তে আমরা প্রতিটি নির্ধারণ করতে বাইনারি অনুসন্ধান ব্যবহার করতে পারি । তবে, বাছাই করতে এখনও সময় লাগে ।B(k)O(nlogn)