বাইনারি অনুসন্ধানের বড় O কি?
বাইনারি অনুসন্ধানের বড় O কি?
Anonim

বাইনারি অনুসন্ধান রৈখিক চেয়ে দ্রুত অনুসন্ধান ছোট অ্যারে ছাড়া।

বাইনারি অনুসন্ধান অ্যালগরিদম

এর ভিজ্যুয়ালাইজেশন বাইনারি অনুসন্ধান অ্যালগরিদম যেখানে 7 হল লক্ষ্য মান
ক্লাস অনুসন্ধান করুন অ্যালগরিদম
বেস্ট-কেস পারফরম্যান্স ও (1)
গড় কর্মক্ষমতা ও (লগ n)
সবচেয়ে খারাপ ক্ষেত্রে স্থান জটিলতা ও (1)

এখানে, বাইনারি অনুসন্ধানের জটিলতা কি?

বাইনারি অনুসন্ধান সবচেয়ে খারাপ লগারিদমিক সময়ে চলে, O(log n) তুলনা করে, যেখানে n হল অ্যারের উপাদানের সংখ্যা, O হল Big O নোটেশন এবং লগ হল লগারিদম। বাইনারি অনুসন্ধান ধ্রুবক (O(1)) স্থান নেয়, যার অর্থ অ্যালগরিদম দ্বারা নেওয়া স্থান অ্যারের যেকোনো সংখ্যক উপাদানের জন্য একই।

উপরন্তু, বাইনারি অনুসন্ধান দ্রুততম? হ্যা এবং না. হ্যাঁ সেখানে অনুসন্ধান যেগুলো দ্রুততর, গড়ে, একটি দ্বিখণ্ডনের চেয়ে অনুসন্ধান . কিন্তু আমি বিশ্বাস করি যে তারা এখনও O(lg N), শুধুমাত্র একটি নিম্ন ধ্রুবক সহ। আপনি আপনার উপাদান খুঁজে নেওয়া সময় কমাতে চান.

একইভাবে কেউ জিজ্ঞাসা করতে পারে, আপনি কীভাবে বাইনারি অনুসন্ধান লিখবেন?

বাইনারি অনুসন্ধান : অনুসন্ধান করুন বারবার বিভক্ত করে একটি সাজানো অ্যারে অনুসন্ধান অর্ধেক মধ্যে ব্যবধান। পুরো অ্যারে জুড়ে একটি ব্যবধান দিয়ে শুরু করুন। এর মান থাকলে অনুসন্ধান কীটি ব্যবধানের মাঝখানে থাকা আইটেমের চেয়ে কম, ব্যবধানটিকে নিম্ন অর্ধেকে সরু করুন। অন্যথায় এটি উপরের অর্ধেক সংকীর্ণ করুন।

বাইনারি অনুসন্ধানের সময় জটিলতা কি?

তাই কিছু ধরণের আচরণ থাকতে হবে যা অ্যালগরিদম দেখানো হচ্ছে a জটিলতা লগ n এর. আসুন দেখি কিভাবে এটি কাজ করে। থেকে বাইনারি অনুসন্ধান O(1) এর সর্বোত্তম কেস দক্ষতা এবং O(log n) এর সবচেয়ে খারাপ ক্ষেত্রে (গড় কেস) দক্ষতা রয়েছে, আমরা সবচেয়ে খারাপ ক্ষেত্রের একটি উদাহরণ দেখব। 16টি উপাদানের একটি সাজানো অ্যারে বিবেচনা করুন।

প্রস্তাবিত: