উদাহরণ সহ সি ++ তে মার্জ বাছাইটি কীভাবে কার্যকর করা যায়

এই নিবন্ধটি আপনাকে সি ++ এ মার্জ বাছাই করার একটি বিচ্ছিন্ন এবং বিস্তৃত জ্ঞান সরবরাহ করবে, উদাহরণগুলির সাথে এটি কীভাবে কাজ করে।

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



নিম্নলিখিত পয়েন্টারগুলি এই নিবন্ধে কভার করা হবে,



সি ++ এ মার্জ করুন বাছাই করা এই নিবন্ধটি নিয়ে চলেছেন

ভাগ করুন এবং বিজয়ী অ্যালগরিদম

কুইকোর্ট কীভাবে কাজ করে আপনি যদি ইতিমধ্যে তার সাথে পরিচিত হন তবে আপনি বিভাজন এবং বিজয়ী কৌশল সম্পর্কে অবগত হতে পারেন। বিভাজক এবং বিজয় তিনটি বড় পদক্ষেপ জড়িত। এই পদক্ষেপগুলি বোঝার জন্য আসুন একটি অ্যারে হ্যালো বিবেচনা করা যাক [] সূচকটি 'এ' শুরু করে এবং শেষ সূচকটি 'এন' আছে সুতরাং আমরা হ্যালো [আ & হেল্প..এন] এর মাধ্যমে নিম্নরূপে আমাদের অ্যারে লিখতে পারি Hello



বিভাজন- প্রদত্ত সমস্যাটিকে উপ-সমস্যা বা উপ-অংশগুলিতে বিভক্ত করাই মূল পদক্ষেপ বা বিভাজন ও বিজয়ের মূল পদক্ষেপ। এখানে ধরাটি হ'ল সাব-সমস্যাগুলি মূল সমস্যার মতো এবং আকারে ছোট হওয়া উচিত। আমাদের ক্ষেত্রে আমরা আমাদের অ্যারেগুলিকে 2 টি ভাগে ভাগ করব [একটি & Hellip.m] [মি + 1 এবং Hellip..n] মি একটি এবং এন সূচকের মাঝখানে অবস্থিত

বিজয়- একবার আমাদের সমস্যাটিকে উপ-সমস্যায় ভাগ করে নেওয়া। আমরা এই সাব-সমস্যাগুলি পুনরাবৃত্তভাবে সমাধান করি।

একত্রিত- এই পদক্ষেপে, আমরা আমাদের উপ-সমস্যার সমস্ত সমাধান একটি উপযুক্ত উপায়ে একত্রিত করি। অন্য কথায়, আমরা 2 টি পৃথক বাছাই করা অ্যারে একত্রিত করে একটি সাজানো অ্যারে গঠন করি। সেখানে আমাদের সাজানো অ্যারে রয়েছে।



সি ++ এ মার্জ করুন বাছাই করা এই নিবন্ধটি নিয়ে চলেছেন

একটি আন্ত জাভা ডাবল কাস্টিং

একটি উদাহরণ দিয়ে মার্জ বাছাই করা অ্যালগরিদম বোঝা

এই মুহুর্তে, আমরা জানি যে সংযুক্তি বাছাইয়ের মাধ্যমে কোন পদ্ধতি ব্যবহার করা হবে। সুতরাং, আসুন আমরা একটি উদাহরণ বিবেচনা করি এবং হ্যালো [] থেকে সাজানো অ্যারেতে অরসোর্টড থেকে প্রতিটি পদক্ষেপের মধ্য দিয়ে যাই।
উদাহরণ- হ্যালো [10, 3, 7, 1, 15, 14, 9, 22]

Merge-sort-in-C++

উপরের চিত্রটিতে আমরা একটি বাছাই করা অ্যারে হিসাবে বিবেচনা করেছি এবং একটি বাছাই করা অ্যারে পেতে মার্জ সাজ্ট ব্যবহার করেছি। এখন, প্রতিটি পদক্ষেপটি দেখুন এবং পুরো অ্যালগরিদমটি বুঝতে পারি

1. প্রথমে, আমরা একটি অ্যারে হ্যালো বিবেচনা করেছি [10, 3, 7, 1, 15, 14, 9, 22] এই অ্যারেটিতে মোট 8 টি উপাদান রয়েছে

২. আমরা যেমন দেখেছি আগে মার্জ করা বাছাই করা উপাদানগুলি বাছাই করতে বিভাজন এবং বিজয় পদ্ধতির ব্যবহার করে। আমরা এম খুঁজে পেয়েছি যা আমাদের অ্যারের মাঝখানে রয়েছে এবং আমাদের অ্যারেটি মাঝখানে থেকে ভাগ করে দিয়েছে যেখানে m = (a - n) / 2 'a' হচ্ছে বামতম উপাদানটির সূচক এবং n আমাদের অ্যারের ডানদিকের উপাদানটির সূচক ।

৩. প্রথম বিভাগের পরে, আমাদের দুটি অংশ রয়েছে যার মধ্যে 4 টি উপাদান রয়েছে। আসুন প্রথমার্ধে [10, 3, 7, 1] তাকান।

4. আমরা [10, 3, 7, 1] কে 2 ভাগে [10, 3] এবং [7, 1] বিভক্ত করি। এর পরে আমরা তাদের আরও [10], [3], [7], [1] এ ভাগ করব। আমরা বিভাগ গণনা করতে না পারায় আরও বিভাজন সম্ভব নয়। একটি একক উপাদানযুক্ত একটি তালিকা সর্বদা বাছাই হিসাবে বিবেচিত হয়।

৫. কীভাবে সংযুক্তি ঘটে? খুঁজে বের কর. প্রথম [10] এবং [3] কে তুলনা করা হয় এবং আরোহী ক্রমে একত্রীকরণ করা হয় [3, 10] একইভাবে আমরা পেয়েছি [1, 7]

6. এর পরে, আমরা [3, 10] এবং [1, 7] এর সাথে তুলনা করি। একবার তুলনা করলে আমরা এগুলিকে আরোহী ক্রমে মার্জ করি এবং আমরা [1, 3, 7, 10] পাই।

[. [15, 14, 9, 2] এছাড়াও একইভাবে বিভক্ত এবং একত্রিত হয় [9, 14, 15, 22]।

৮. শেষ ধাপে আমরা আমাদের সাজানো অ্যারে দিতে [15, 14, 9, 2] [9, 14, 15, 22] এর সাথে তুলনা এবং সংযুক্ত করিঅর্থাৎ [1, 3, 7, 9, 10, 14, 15, 22]।

সি ++ এ মার্জ করুন বাছাই করা এই নিবন্ধটি নিয়ে চলেছেন

জাভাতে কীভাবে চার স্ক্যান করবেন

সাজানোর বাছাইয়ের জন্য সিউডোকোড

বাকি থাকলে শুরু করুন

ফাংশন মার্জসোর্ট () পুনরাবৃত্তভাবে আমাদের অ্যারেগুলিকে ভাগ করার জন্য ডাকে যতক্ষণ না এটি একক উপাদান হয়ে যায় এবং ফাংশনটি মার্জ () ব্যবহার করে সাজানো অ্যারেগুলিকে একীভূত করতে ব্যবহৃত হয়।

সি ++ এ মার্জ করুন বাছাই করা এই নিবন্ধটি নিয়ে চলেছেন

সি ++ এ সাজান প্রোগ্রামটি মার্জ করুন

# অন্তর্ভুক্ত # অন্তর্ভুক্ত # নেমস্পেস ব্যবহার করে std অকার্যকর মার্জ (int a [], int ফার্স্টইন্ডেক্স, int m, int লাস্টিনডেক্স) // উপ-অ্যারেগুলিকে মার্জ করে যা বিভাগ অকার্যকর মার্জসার্টের সময় তৈরি হয় (int a [], int firstindex, int) লাস্টইন্ডেক্স) {যদি (ফার্স্টইন্ডেক্স)সাইজ ইন হ্যালো [আকার], আমি চকচকে<<'Enter the elements of the array one by one:n' for(i=0 i>হ্যালো [i] মার্জসোর্ট (হ্যালো, 0, আকার - 1) কোট<<'The Sorted List isn' for(i=0 i

আউটপুট-

সি ++ এ মার্জ করুন বাছাই করা এই নিবন্ধটি নিয়ে চলেছেন

সময় জটিলতা

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

সবচেয়ে খারাপ ক্ষেত্রে চলমান সময়- ও (এন লগ এন)
চলমান সেরা কেস- ও (এন লগ এন)
গড় চলমান সময়- ও (এন লগ এন)

এটির সাথে সাথে আমরা সি ++ নিবন্ধে এই মার্জ বাছাইয়ের শেষে এসেছি। আপনি যদি আরও শিখতে চান তবে এটি দেখুন এডুরেকা, একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা। এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি হিবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি আপনাকে মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই ব্লগের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।