লিনিয়ার অনুসন্ধান এবং বাইনারি অনুসন্ধানের মধ্যে পার্থক্য

লেখক: Laura McKinney
সৃষ্টির তারিখ: 1 এপ্রিল 2021
আপডেটের তারিখ: 5 মে 2024
Anonim
লিনিয়ার সার্চ এবং বাইনারি সার্চের মধ্যে পার্থক্য || ডিজাইন বিশ্লেষণ এবং অ্যালগরিদম
ভিডিও: লিনিয়ার সার্চ এবং বাইনারি সার্চের মধ্যে পার্থক্য || ডিজাইন বিশ্লেষণ এবং অ্যালগরিদম

কন্টেন্ট


লিনিয়ার অনুসন্ধান এবং বাইনারি অনুসন্ধান দুটি পদ্ধতি যা অ্যারেতে ব্যবহৃত হয় অনুসন্ধান উপাদানগুলো. অনুসন্ধান হ'ল যে কোনও ক্রমে বা এলোমেলোভাবে সঞ্চিত উপাদানগুলির তালিকার মধ্যে একটি উপাদান সন্ধান করার প্রক্রিয়া।

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

উভয়ের মধ্যে আরেকটি পার্থক্য হ'ল বাইনারি অনুসন্ধানের পূর্বশর্ত রয়েছে, অর্থাৎ উপাদানগুলি অবশ্যই সাজানো রৈখিক অনুসন্ধানের সময় এই জাতীয় পূর্বশর্ত নেই। যদিও উভয় অনুসন্ধানের পদ্ধতিতে বিভিন্ন কৌশল ব্যবহার করা হয়েছে যা নীচে আলোচনা করা হয়েছে।

  1. তুলনা রেখাচিত্র
  2. সংজ্ঞা
  3. মূল পার্থক্য
  4. উপসংহার

তুলনা রেখাচিত্র

তুলনার জন্য ভিত্তিলিনিয়ার অনুসন্ধানবাইনারি অনুসন্ধান
সময় জটিলতাউপর)হে (লগ 2 এন)
সেরা কেস সময়প্রথম উপাদান হে (1)কেন্দ্র এলিমেন্ট হে (1)
একটি অ্যারের জন্য পূর্বশর্তকোন প্রয়োজন নেইঅ্যারে অবশ্যই বাছাই করা উচিত
উপাদানগুলির সংখ্যা N এর জন্য সবচেয়ে খারাপ ক্ষেত্রেএন তুলনা প্রয়োজনশুধুমাত্র লগ করার পরে উপসংহারে আসতে পারে2এন তুলনা
কার্যকর করা যেতে পারেঅ্যারে এবং লিঙ্কযুক্ত তালিকালিঙ্কযুক্ত তালিকায় সরাসরি প্রয়োগ করা যায় না
অপারেশন sertোকানসহজেই তালিকার শেষে sertedোকানো হয়বাছাই করা তালিকা বজায় রাখার জন্য যথাযথ জায়গায় সন্নিবেশ করার জন্য প্রক্রিয়াজাতকরণ প্রয়োজন।
অ্যালগরিদম প্রকারপ্রকৃতির স্বচ্ছন্দবিভক্ত এবং প্রকৃতি বিজয়
কাজেরতাব্যবহার করা সহজ এবং কোনও আদেশকৃত উপাদানগুলির প্রয়োজন নেই।যে কোনওভাবেই ছদ্মবেশী অ্যালগরিদম এবং উপাদানগুলি ক্রমে সংগঠিত করা উচিত।
কোডের লাইনকমঅধিক


লিনিয়ার সন্ধানের সংজ্ঞা

একটি লিনিয়ার অনুসন্ধানে, অ্যারের প্রতিটি উপাদান একটির একটি যৌক্তিক ক্রমে পুনরুদ্ধার করা হয় এবং এটি পছন্দসই উপাদানটি কিনা তা পরীক্ষা করে নেওয়া হয়। যদি সমস্ত উপাদান অ্যাক্সেস করা হয় এবং পছন্দসই উপাদানটি পাওয়া না যায় তবে একটি অনুসন্ধান ব্যর্থ হবে। সবচেয়ে খারাপ ক্ষেত্রে, অ্যারে আকারের অর্ধেক (এন / 2) অর্ধেক স্ক্যান করতে হতে পারে আমাদের গড় মামলার সংখ্যা।

অতএব রৈখিক অনুসন্ধানকে এমন কৌশল হিসাবে সংজ্ঞায়িত করা যায় যা প্রদত্ত আইটেমটি সনাক্ত করতে ক্রমান্বয়ে অ্যারেটিকে অনুসরণ করে। নীচে প্রদত্ত প্রোগ্রামটি অনুসন্ধান ব্যবহার করে অ্যারের কোনও উপাদান অনুসন্ধান সন্ধান করে।

দক্ষতা রৈখিক অনুসন্ধান

অনুসন্ধানের সারণীতে রেকর্ড অনুসন্ধানে তৈরি সময় ব্যয় এবং তুলনা সংখ্যা কৌশলটির দক্ষতা নির্ধারণ করে। যদি পছন্দসই রেকর্ড অনুসন্ধান সারণীর প্রথম অবস্থানে উপস্থিত থাকে তবে কেবল একটি তুলনা করা হবে। যখন কাঙ্ক্ষিত রেকর্ডটি সর্বশেষ এক, তারপরে এন তুলনা করাতে হবে। রেকর্ডটি যদি সন্ধান টেবিলের কোথাও উপস্থাপন করা হয় তবে গড়ে তুলনার সংখ্যাটি হবে (এন + 1/2)। এই কৌশলটির সবচেয়ে খারাপ কেস দক্ষতা হ'ল ও (এন) কার্যকর করার আদেশকে বোঝায়।


সি প্রোগ্রাম রৈখিক অনুসন্ধান কৌশল সহ একটি উপাদান অনুসন্ধান করতে।

# অন্তর্ভুক্ত # অন্তর্ভুক্ত অকার্যকর প্রধান () a int a, n, i, আইটেম, লোক = -1; clrscr (); f (" n উপাদানটির সংখ্যা লিখুন:"); স্ক্যানফ ("% d", & n); f ("সংখ্যাগুলি লিখুন:; n"); (i = 0; i <= n-1; i ++) {স্ক্যানফ ("% d", এবং একটি); ; f (" n সন্ধান করার জন্য নম্বরটি প্রবেশ করুন:"); স্ক্যানফ ("% d", & আইটেম); (i = 0; i <= n-1; i ++) {যদি (আইটেম == ক) {লোক = আমি; বিরতি; }} if (লোক> = 0) {f (" n% d%% পজিশনে পাওয়া যায়:", আইটেম, লক + 1); } অন্য {চ (" n আইটেম বিদ্যমান নেই"); } গেচ (); }

বাইনারি অনুসন্ধান সংজ্ঞা

বাইনারি অনুসন্ধান একটি অত্যন্ত দক্ষ অ্যালগরিদম। এই অনুসন্ধান কৌশলটি ন্যূনতম সম্ভাবনা তুলনা করে প্রদত্ত আইটেমটি সন্ধান করতে কম সময় নেয়। বাইনারি অনুসন্ধান করতে, প্রথমে আমাদের অ্যারে উপাদানগুলি বাছাই করতে হবে।

এই কৌশলটির পিছনে যুক্তিটি নীচে দেওয়া হল:

  • প্রথমে অ্যারের মাঝারি উপাদানটি সন্ধান করুন।
  • অ্যারের মধ্যবর্তী উপাদানটি অনুসন্ধান করার উপাদানটির সাথে তুলনা করা হয়।

তিনটি ক্ষেত্রে দেখা দিতে পারে:

  1. যদি উপাদানটি প্রয়োজনীয় উপাদান হয় তবে অনুসন্ধানটি সফল is
  2. যখন উপাদানটি পছন্দসই আইটেমের চেয়ে কম হবে, তবে অ্যারের প্রথমার্ধটি কেবল অনুসন্ধান করুন।
  3. যদি এটি পছন্দসই উপাদানটির চেয়ে বেশি হয় তবে অ্যারের দ্বিতীয়ার্ধে অনুসন্ধান করুন।

কোনও উপাদান খুঁজে পাওয়া বা অনুসন্ধানের জায়গায় অবসন্ন না হওয়া পর্যন্ত একই পদক্ষেপগুলি পুনরাবৃত্তি করুন। এই অ্যালগরিদমে প্রতিবার অনুসন্ধানের অঞ্চল হ্রাস পাচ্ছে। অতএব তুলনার সংখ্যা সর্বাধিক লগ (এন + 1) হয়। ফলস্বরূপ, লিনিয়ার সন্ধানের সাথে তুলনা করার সময় এটি একটি দক্ষ অ্যালগরিদম তবে বাইনারি অনুসন্ধান করার আগে অ্যারেটি বাছাই করতে হবে।

সি প্রোগ্রাম বাইনারি অনুসন্ধান কৌশল সহ একটি উপাদান সন্ধান করতে।

# অন্তর্ভুক্ত অকার্যকর প্রধান () i int i, ভিক্ষা, শেষ, মাঝারি, এন, অনুসন্ধান, অ্যারে; f ("উপাদানের সংখ্যা লিখুন n"); , scanf ( "% d টি", & N); f ("% d সংখ্যা লিখুন n", n); (i = 0; i <n; i ++) স্ক্যানফের জন্য ("% d", & অ্যারে); f ("অনুসন্ধানের জন্য নম্বর লিখুন n"); স্ক্যানফ ("% d", & অনুসন্ধান); ভিক্ষা = 0; শেষ = এন - 1; মাঝারি = (ভিক্ষা + শেষ) / 2; যখন (ভিক্ষা <= শেষ) {যদি (অ্যারে <সন্ধান) ভিক্ষা = মাঝারি + 1; অন্যথায় যদি (অ্যারে == অনুসন্ধান) {চ ("অনুসন্ধান সফল হয় n% d লোকেশন% d এ পাওয়া গেছে n", অনুসন্ধান, মাঝারি + 1); বিরতি; end অন্য প্রান্ত = মাঝারি - 1; মাঝারি = (ভিক্ষা + শেষ) / 2; } যদি (ভিক্ষা> শেষ) চ ("অনুসন্ধান ব্যর্থ হয়েছে!% d তালিকায় উপস্থিত নেই " n ", অনুসন্ধান); getch (); }

  1. লিনিয়ার অনুসন্ধান প্রকৃতিতে পুনরাবৃত্তি এবং ক্রমবর্ধমান পদ্ধতির ব্যবহার করে। অন্যদিকে, বাইনারি অনুসন্ধান বিভাজন এবং বিজয় পদ্ধতির প্রয়োগ করে।
  2. রৈখিক অনুসন্ধানের সময় জটিলতা হ'ল (এন) এবং বাইনারি অনুসন্ধানে ও (লগ থাকে)2এন)।
  3. রৈখিক অনুসন্ধানের ক্ষেত্রে সর্বাধিক ক্ষেত্রে সময় হ'ল প্রথম উপাদান অর্থাত্, হে (1)। এর বিপরীতে, বাইনারি অনুসন্ধানে, এটি মাঝারি উপাদানটির জন্য, অর্থাত্, হে (1)।
  4. রৈখিক অনুসন্ধানে, কোনও উপাদান অনুসন্ধান করার ক্ষেত্রে সবচেয়ে খারাপ ঘটনাটি হল তুলনার সংখ্যা। বিপরীতে, এটি লগ হয়2বাইনারি অনুসন্ধানের জন্য তুলনা সংখ্যা।
  5. লিনিয়ার অনুসন্ধান একটি অ্যারের পাশাপাশি লিঙ্কযুক্ত তালিকায় প্রয়োগ করা যেতে পারে তবে বাইনারি অনুসন্ধান সরাসরি লিঙ্কযুক্ত তালিকায় প্রয়োগ করা যায় না।
  6. যেমনটি আমরা জানি বাইনারি অনুসন্ধানের জন্য বাছাই করা অ্যারের প্রয়োজন কারণ এটির জন্য এটি সাজানো তালিকার বজায় রাখতে যথাযথ স্থানে সন্নিবেশ করা প্রয়োজন processing বিপরীতে লিনিয়ার অনুসন্ধানের জন্য বাছাই করা উপাদানগুলির প্রয়োজন হয় না, তাই উপাদানগুলি তালিকার শেষে সহজেই inোকানো হয়।
  7. লিনিয়ার অনুসন্ধান ব্যবহার করা সহজ, এবং কোনও আদেশকৃত উপাদানগুলির প্রয়োজন নেই। অন্যদিকে, বাইনারি অনুসন্ধানের অ্যালগরিদম তবে জটিল এবং উপাদানগুলি প্রয়োজনীয়ভাবে সাজানো হয়েছে।

উপসংহার

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

সাধারণ বাইনারি অনুসন্ধান অ্যালগরিদম লিঙ্কযুক্ত তালিকায় নিযুক্ত করা যায় না কারণ লিঙ্কযুক্ত তালিকাটি প্রকৃতির গতিশীল এবং মধ্যম উপাদানটি আসলে কোথায় নির্ধারিত হয়েছিল তা জানা যায় না। সুতরাং, বাইনারি অনুসন্ধানের অ্যালগরিদমটির পরিবর্তনের নকশা করার প্রয়োজন রয়েছে যা লিঙ্কযুক্ত তালিকায়ও কাজ করতে পারে কারণ বাইনারি অনুসন্ধানটি লিনিয়ার অনুসন্ধানের চেয়ে কার্যকরভাবে দ্রুত হয়।