আমি সর্বদা শুনেছি যে লিনিয়ার সন্ধানটি একটি নির্বোধ পন্থা এবং বাইনারি অনুসন্ধান ভাল অ্যাসিপোটিক জটিলতার কারণে পারফরম্যান্সে এর চেয়ে ভাল better তবে আমি কখনই বুঝতে পারি না যে বাইনারি অনুসন্ধানের আগে যখন বাছাই করা প্রয়োজন তখন লিনিয়ার অনুসন্ধানের চেয়ে কেন ভাল?
লিনিয়ার অনুসন্ধান O(n)
এবং বাইনারি অনুসন্ধান হয় O(log n)
। এটি বাইনারি অনুসন্ধান ভাল বলে বলার ভিত্তি বলে মনে হয়। তবে বাইনারি অনুসন্ধানের জন্য বাছাই করা দরকার যা O(n log n)
সেরা অ্যালগরিদমের জন্য। তাই বাইনারি অনুসন্ধান আসলে দ্রুত করা উচিত হবে না যেমন এটা বাছাই প্রয়োজন।
আমি সিএলআরএসটি পড়ছি যেখানে লেখক সূচিত করেছেন যে সাদামাটা লিনিয়ার অনুসন্ধানের পদ্ধতির পরিবর্তে সন্নিবেশ সাজানোর ক্ষেত্রে আইটেমটি সন্নিবেশ করানোর জায়গাটি সন্ধানের জন্য বাইনারি অনুসন্ধান করা ভাল is এই ক্ষেত্রে এটি ন্যায়সঙ্গত বলে মনে হচ্ছে যেহেতু প্রতিটি লুপ পুনরাবৃত্তিতে একটি বাছাই করা তালিকা রয়েছে যার উপরে বাইনারি অনুসন্ধান প্রয়োগ করা যেতে পারে। কিন্তু সাধারণ ক্ষেত্রে যেখানে আমাদের যে ডেটা সেটটি অনুসন্ধান করতে হবে সে সম্পর্কে কোনও গ্যারান্টি নেই যেখানে প্রয়োজনীয়তা বাছাইয়ের কারণে বাইনারি অনুসন্ধান লিনিয়ার অনুসন্ধানের চেয়ে আরও খারাপ নয়?
রৈখিক অনুসন্ধানের চেয়ে বাইনারি অনুসন্ধানকে আরও ভাল করে তোলে এমন কোনও ব্যবহারিক বিবেচনা কি আমি অবহেলা করছি? বা বাইনারি অনুসন্ধানকে বাছাইয়ের জন্য প্রয়োজনীয় গণনার সময় বিবেচনা না করে লিনিয়ার অনুসন্ধানের চেয়ে ভাল বলে বিবেচনা করা হয়?