রৈখিক এবং বাইনারি অনুসন্ধান অ্যালগরিদম ব্যাখ্যা করা হয়েছে

রৈখিক এবং বাইনারি অনুসন্ধান অ্যালগরিদম ব্যাখ্যা করা হয়েছে

কিছু তথ্য অনুসন্ধান করার ক্ষমতা কম্পিউটার বিজ্ঞানের একটি গুরুত্বপূর্ণ দিক। সার্চ অ্যালগরিদম একটি ডেটা সেটে একটি নির্দিষ্ট আইটেম খুঁজতে ব্যবহৃত হয়।





অ্যালগরিদম একটি অনুসন্ধানের প্রশ্নে একটি বুলিয়ান ফলাফল (সত্য বা মিথ্যা) প্রদান করে। পাওয়া মানটির আপেক্ষিক অবস্থান দিতে সেগুলিও পরিবর্তন করা যেতে পারে।





এই নিবন্ধের জন্য, অ্যালগরিদম একটি মান বিদ্যমান কিনা তা নির্ধারণে মনোনিবেশ করবে।





রৈখিক অনুসন্ধান অ্যালগরিদম

রৈখিক অনুসন্ধান ক্রমিক অনুসন্ধান হিসাবেও পরিচিত। এই ধরণের অনুসন্ধানে, একটি তালিকার প্রতিটি মান একটি সুশৃঙ্খলভাবে একে একে পরিদর্শন করা হয় যখন চেক করার সময় পছন্দসই মান বিদ্যমান।

অ্যালগরিদম মান অনুসারে মান চেক করে যতক্ষণ না আপনি যে মানটি খুঁজছেন তা খুঁজে পান বা অনুসন্ধানের জন্য মান শেষ না হয়। যখন এটি অনুসন্ধানের জন্য মানগুলির বাইরে চলে যায়, তার মানে আপনার অনুসন্ধান অনুসন্ধানটি তালিকায় নেই।



একটি ক্রমিক অনুসন্ধান অ্যালগরিদম মানগুলির একটি তালিকা এবং তালিকার পছন্দসই আইটেমটিকে তার পরামিতি হিসাবে নেয়। রিটার্ন ফলাফল হিসাবে শুরু করা হয় মিথ্যা এবং পরিবর্তন হবে সত্য যখন কাঙ্ক্ষিত মান পাওয়া যায়।

একটি উদাহরণ হিসাবে নীচের পাইথন বাস্তবায়ন দেখুন:





def linearSearch(mylist, item):
found = False
index = 0
while index if mylist[index] == item:
found = True
else:
index = index+1
return found

অ্যালগরিদম বিশ্লেষণ

পছন্দের আইটেমটি তালিকার প্রথমটি হলে সেরা ক্ষেত্রে পরিস্থিতি তৈরি হয়। সবচেয়ে খারাপ অবস্থা তখন ঘটে যখন পছন্দের আইটেমটি তালিকার শেষ (nth item)। অতএব, রৈখিক অনুসন্ধানের জন্য সময় জটিলতা হল O (n)।

উপরের অ্যালগরিদমে গড় কেস দৃশ্যকল্প n/2।





সম্পর্কিত: বিগ-ও নোটেশন কি?

এটা জানা গুরুত্বপূর্ণ যে ব্যবহৃত অ্যালগরিদম অনুমান করে যে আইটেমের একটি এলোমেলো তালিকা এটি প্রদান করা হয়েছে। অর্থাৎ, তালিকা আইটেম কোন নির্দিষ্ট ক্রম হয়।

অনলাইনে বন্ধুর সাথে সিনেমা দেখুন

ধরুন আইটেমগুলি একটি বিশেষ ক্রমে ছিল, ছোট থেকে বড় পর্যন্ত বলুন। গণনায় কিছু সুবিধা অর্জন করা সম্ভব হবে।

প্রদত্ত তালিকায় 19 সন্ধানের একটি উদাহরণ নিন: [2, 5, 6, 11, 15, 18, 23, 27, 34]। ২ reaching -এ পৌঁছানোর পরে, এটি স্পষ্ট হয়ে যাবে যে যে আইটেমটির সন্ধান করা হচ্ছে তা তালিকায় নেই। অতএব, তালিকার বাকি আইটেমগুলি অনুসন্ধান করা আর গুরুত্বপূর্ণ হবে না।

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

আপনি দেখেছেন কিভাবে একটি অর্ডারকৃত তালিকা প্রয়োজনীয় গণনা কমাতে পারে। বাইনারি অনুসন্ধান অ্যালগরিদম এই দক্ষতার আরও বেশি সুবিধা নেয় যা একটি অর্ডার করা তালিকা চালু করে।

অ্যালগরিদম একটি অর্ডার করা তালিকার মাঝারি মান নিয়ে শুরু হয় এবং এটি পছন্দসই মান কিনা তা পরীক্ষা করে। যদি এটি না হয়, তবে মানটি পছন্দসই মানের চেয়ে কম বা বেশি কিনা তা পরীক্ষা করা হয়।

যদি এটি কম হয়, তাহলে তালিকার নীচের অর্ধেকটি পরীক্ষা করার দরকার নেই। অন্যথায়, যদি এটি বেশি হয়, তাহলে এটি তালিকার উপরের অর্ধেকের দিকে চলে যায়।

সম্পর্কিত: পুনরাবৃত্তি কী এবং আপনি এটি কীভাবে ব্যবহার করবেন?

যে কোন সাবলিস্ট (বাম বা ডান) নির্বিশেষে, মধ্যম মান আবার নির্ধারণ করা হবে। মানটি আবার চেক করা হয় যদি এটি প্রয়োজনীয় মান হয়। যদি এটি না হয়, এটি যাচাইকৃত মানের চেয়ে কম বা বেশি কিনা তা পরীক্ষা করা হয়েছে।

একটি ইউটিউব সাবস্ক্রিপশন কত

এই প্রক্রিয়াটি পুনরাবৃত্তি করা হয় যতক্ষণ না সেখানে একটি মান পাওয়া যায়।

নীচের পাইথন বাস্তবায়ন বাইনারি অনুসন্ধান অ্যালগরিদমের জন্য।

def binarySearch (mylist, item):

low = 0
high = len(mylist) - 1
found = False
while low <= high and not found: mid = (low + high) // 2
if mylist[mid] == item:found = True
elif item else:low = mid + 1
return found

অ্যালগরিদম বিশ্লেষণ

সর্বোত্তম ক্ষেত্রে দৃশ্যকল্প ঘটে যখন পছন্দসই আইটেমটি মধ্যম আইটেম হিসাবে পাওয়া যায়। সবচেয়ে খারাপ পরিস্থিতি যদিও সহজবোধ্য নয়। নীচের বিশ্লেষণ অনুসরণ করুন:

প্রথম তুলনার পর n/2 টি আইটেম বাকি থাকবে। দ্বিতীয়টির পরে, n/4 টি আইটেম বাকি থাকবে। তৃতীয় পরে, n/8।

লক্ষ্য করুন যে আইটেমের সংখ্যা অর্ধেক হতে থাকে যতক্ষণ না তারা n/2i তে পৌঁছায় যেখানে আমি তুলনার সংখ্যা। সমস্ত বিভক্তির পরে, আমরা শুধুমাত্র 1 টি আইটেম দিয়ে শেষ করি।

এই থেকেই বোঝা:

n/2i = 1 অতএব, বাইনারি অনুসন্ধান হল O (লগ n)।

বাছাই করা হচ্ছে

বাইনারি অনুসন্ধানে, আমরা একটি কেস বিবেচনা করেছি যেখানে প্রদত্ত অ্যারেটি ইতিমধ্যে অর্ডার করা হয়েছিল। কিন্তু ধরুন আপনার একটি অনিয়ন্ত্রিত ডেটাসেট ছিল এবং আপনি এটিতে বাইনারি অনুসন্ধান করতে চেয়েছিলেন। আপনি কি করতে চান?

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

শেয়ার করুন শেয়ার করুন টুইট ইমেইল নির্বাচন বাছাই কিভাবে ব্যবহার করবেন

বাছাই বাছাই করা শুরু করার জন্য একটু কঠিন, কিন্তু একবার আপনি জিনিসগুলির দোল পেয়ে গেলে এটি খুব চ্যালেঞ্জিং নয়।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • প্রযুক্তি ব্যাখ্যা করা হয়েছে
  • প্রোগ্রামিং
  • অ্যালগরিদম
  • তথ্য বিশ্লেষণ
লেখক সম্পর্কে জেরোম ডেভিডসন(22 নিবন্ধ প্রকাশিত)

জেরোম MakeUseOf এর একজন স্টাফ রাইটার। তিনি প্রোগ্রামিং এবং লিনাক্স সম্পর্কিত নিবন্ধগুলি জুড়েছেন। তিনি একজন ক্রিপ্টো উত্সাহী এবং সর্বদা ক্রিপ্টো শিল্পের উপর নজর রাখেন।

জেরোম ডেভিডসন থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন