বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/অ্যারে অনুসন্ধান

উইকিবই থেকে

সংক্ষিপ্ত বিবরণ

[সম্পাদনা]

রৈখিক অনুসন্ধান বা লিনিয়ার সার্চ যাকে অনুক্রমিক অনুসন্ধান(সিকোয়েন্সিয়াল সার্চ) হিসাবেও অভিহিত করা হয়, তা হলো একটি তালিকার অন্তর্নিহিত একটি নির্দিষ্ট মানকে খুঁজে বের করার এক বিশেষ পদ্ধতি। এই পদ্ধতিতে তালিকার প্রতিটি উপাদানকে একে একে পরীক্ষা করা হয় যতক্ষণ না লক্ষ্য মানটি পাওয়া যায় বা তালিকার সব উপাদান পরীক্ষা শেষ হয়।[]

আলোচনা

[সম্পাদনা]

কম্পিউটার প্রোগ্রামে কোন অ্যারের মধ্যে অবস্থিত কোন উপাদানকে খুজতে লিনিয়ার সার্চ পদ্ধতি ব্যাবহার করা হয়। মূলত অ্যারের মধ্যে কোন কাঙ্খিত উপাদানকে খুজতে হলে অ্যারের প্রথম ইনডেক্স বা সূচক (যা আসলে শূন্য)-এর ঘর থেকে অনুসন্ধান শুরু হয়। এবার প্রথম সূচকে যদি কাঙ্খিত উপাদানটি খুজে না পাওয়া যায় তাহলে অ্যারের পরবর্তী সূচক সম্বলিত ঘরটিতে অনুসন্ধান করা হয়। এইভাবে অ্যারের প্রত্যেক সুচক সম্বলিত ঘরে অনুসন্ধান করা হয় যতক্ষননা কাঙ্খিত উপাদানটি পাওয়া যায়। যদি অ্যারের শেষ সূচকের ঘরটিতেও কাঙ্খিত উপাদানটি না পাওয়া যায় তাহলে বোঝা যায় যে কাঙ্খিত উপাদানটি অ্যারেতে উপস্থিত নেই।

লিনিয়ার সার্চ একটি খুব সহজ অ্যালগরিদম। একে কখনো কখনো সিকোয়েন্সিয়াল সার্চ -ও বলা হয়। এই পদ্ধতিতে একটি লুপের ব্যবহার করে(অ্যারে অনুসন্ধানে মূলত ফর লুপ ব্যাবহার করা হয়) অ্যারেটির প্রথম উপাদান থেকে শুরু করে, একে একে প্রতিটি উপাদান পরীক্ষা করে এবং যে উপাদানটিকে খোঁজা হচ্ছে তার সাথে তুলনা করা হয়। যদি কাঙ্খিত মানটি খুজে পাওয়া যায় তাহলে অনুসন্ধান থেমে যায়। নাহলে অ্যারেটির শেষ অবধি সন্ধান করার পর সন্ধান প্রক্রিয়া বন্ধ হয়। অর্থাৎ যদি কাঙ্খিত মানটি অ্যারেতে না থাকে, তাহলে লিনিয়ার সার্চ অ্যালগরিদম অনুসারে সম্পূর্ণ অ্যারেটি খুঁজে দেখা হয়।[]

লিনিয়ার সার্চ -এর মাধ্যমে অ্যারের দুটি নির্দিষ্ট মান অনুসন্ধান করা যায়, যার মধ্যে একটি হলো অ্যারেতে উপস্থিত সর্বোচ্চ (সর্ববৃহৎ) মান খুঁজে এবং অন্যটি হলো সর্বনিম্ন (সর্বক্ষুদ্র) মান। অ্যারের সর্বোচ্চ ও সর্বনিম্ন মানকে যথাক্রমে max এবং min নামেও ডাকা হয়। এই নামের দুটি ফাংশন বর্তমান যাদের মাধ্যমে যথাক্রমে অ্যারের সর্বোচ্চ ও সর্বনিম্ন মান অনুসন্ধান করা যায়। তবে max এবং min ফাংশন প্রয়োগ করার আগে ধরে নিতে হয় যে অ্যারেটতে কমপক্ষে দুটি উপাদান আছে। লিনিয়ার সার্চ এবং তার সাথে সম্বন্ধিত ফাংশনের কার্যকারিতা বুঝতে নিচের স্যুডোকোডটি লক্ষ্য করুন।

স্যুডোকোড

[সম্পাদনা]
Function Main
    Declare Integer Array ages[5]
    Declare Integer maximum
    Declare Integer minimum
    
    Assign ages = [49, 48, 26, 19, 16]

    Assign maximum = max(ages)
    Assign minimum = min(ages)

    Output "Maximum age is: " & maximum
    Output "Minimum age is: " & minimum
End

Function max (Integer Array array)
    Declare Integer maximum
    Declare Integer index
    
    Assign maximum = array[0]
    For index = 1 to Size(array) - 1
        If maximum < array[index] 
            Assign maximum = array[index] 
        End 
    End 
Return Integer maximum 

Function min (Integer Array array) 
    Declare Integer minimum 
    Declare Integer index 

    Assign minimum = array[0] 
    For index = 1 to Size(array) - 1 
        If minimum > array[index]
            Assign minimum = array[index]
        End
    End
Return Integer minimum

আউটপুট

[সম্পাদনা]
Maximum age is: 49
Minimum age is: 16

মূল পরিভাষা

[সম্পাদনা]
রৈখিক অনুসন্ধান(লিনিয়ার সার্চ)
একটি অ্যারের মধ্যে কোন নির্দিষ্ট মানের উপাদানকে খোজার জন্য, অ্যারের প্রত্যেক উপাদানের অনুক্রমিক অনুসন্ধান যাতে লুপ ব্যবহার করা হয়।
ম্যাক্সিমাম বা সর্ববৃহৎ
max হল maximum কথাটির সংক্ষেপ। এটি একটি ফাংশন যার মাধ্যমে অ্যারেতে উপস্থিত সর্ববৃহৎ মানের উপাদানটির সন্ধান করা যায়।
মিনিমাম বা সর্বনিম্ন
min হল minimum কথাটির সংক্ষেপ। এটি একটি ফাংশন যার মাধ্যমে অ্যারেতে উপস্থিত সর্বনিম্ন মানের উপাদানটির সন্ধান করা যায়।

তথ্যসূত্র

[সম্পাদনা]
  1. Wikipedia: Linear search
  2. Tony Gaddis, Judy Walters, and Godfrey Muganda, Starting Out with C++ Early Objects Sixth Edition (United States of America: Pearson – Addison Wesley, 2008) 559.