কিভাবে সিডিতে রেডিক্স বাছাই প্রোগ্রামের সেরা প্রয়োগ করবেন?

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

এই নিবন্ধটি আপনাকে Radix বাছাইয়ের সাথে পরিচয় করিয়ে দেবে এবং কীভাবে Radix Sort প্রয়োগ করতে হবে তা আপনাকে জানিয়ে দেবে সি তে নিম্নলিখিত পয়েন্টারগুলি এই নিবন্ধে আচ্ছাদিত হবে,



সুতরাং আমাদের এখন শুরু করা যাক,



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

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



সুতরাং, রৈখিক সময়ে 1 থেকে n2 অবধিগুলির উপাদানগুলির সাথে একটি অ্যারে বাছাই করতে আমাদের র‌্যাডিক্স সাজানোর প্রয়োজন। রেডিক্স বাছাই করে অ্যারে ডিজিটকে সর্বাধিক উল্লেখযোগ্য অঙ্ক থেকে শুরু করে সর্বাধিক তাৎপর্যন্ত অঙ্কের থেকে সাজান। রেডিক্স বাছাই বাছাই করার জন্য একটি সাবরুটাইন হিসাবে গণনা সাজানোর ব্যবহার করে।

সিডিতে র‌ডিক্স বাছাই প্রোগ্রামে এই নিবন্ধটি নিয়ে চালিত হওয়া,

রেডিক্স বাছাই অ্যালগরিদম

বামে উপস্থিত সবচেয়ে উল্লেখযোগ্য অঙ্কের দিকে অগ্রসর হয়ে ডানদিকে উপস্থিত সর্বনিম্ন উল্লেখযোগ্য অঙ্ক থেকে শুরু করে সমস্ত অঙ্কের জন্য নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন।



বর্তমান সংখ্যা অনুসারে গণনা বাছাই করে উপাদানগুলি সাজান।
উদাহরণ:

আসল অ্যারে:
140, 65, 85, 110, 612, 54, 12, 86

সর্বনিম্ন উল্লেখযোগ্য অঙ্ক বাছাই করা অর্থাত্ এক জায়গায়, দেয়

কিভাবে ডাবল ইনট রূপান্তর করতে

140, 110, 612, 12, 54, 65, 85, 86

দ্রষ্টব্য: যেহেতু 12 এর আগে 612 উপস্থিত হবে এবং বাছাই কেবল একটি অঙ্কের জন্য করা হয়, সুতরাং এই পুনরাবৃত্তির 12 এর আগে 612 উপস্থিত হয়।

পরবর্তী অঙ্ক অনুসারে বাছাই করা, যেমন 10 এর স্থানে, দেয়:

110, 612, 12, 140, 54, 65, 85, 86

সর্বাধিক উল্লেখযোগ্য অঙ্ক অনুসারে বাছাই করা, অর্থাৎ 100 এর স্থানে উপস্থিত, দেয়:

012, 054, 065, 085, 086, 110, 140, 612

সিডিতে র‌ডিক্স বাছাই প্রোগ্রামে এই নিবন্ধটি নিয়ে চালিত হওয়া,

রেডিক্স বাছাই প্রোগ্রাম সি

প্রথম Radix বাছাই ফাংশন তাকান

Radix বাছাই ফাংশন:

অকার্যকর রেডিক্সসোর্ট (ইনট অ্যারে [], এনট এন) {// সর্বাধিক সংখ্যার সংখ্যা জানার জন্য সর্বাধিক সংখ্যা পান int এম = গেটম্যাক্স (অ্যারে, এন) ইন্ট ডিগ // গণনা বাছাই প্রতিটি ডিজিটের জন্য করা হয় (ডিগ = 1 মি / ডিগ> 0 ডিগ * = 10) কাউন্টসোর্ড (অ্যারে, এন, ডিগ)}

সিডিতে র‌ডিক্স বাছাই প্রোগ্রামে এই নিবন্ধটি নিয়ে চালিত হওয়া,

বাছাই ফাংশন গণনা:

অকার্যকর কাউন্টসোর্ট (ইনট অ্যারে [], ইনট এন, ইন্ট ডিগ) {ইনপুট আউটপুট [এন] ইনট আই, গণনা [10] = {0} // গণনার মধ্যে উপস্থিতিগুলির গণনা [i = 0 i)= 0 i--) {আউটপুট [গণনা [(অ্যারে [i] / খনন)% 10] - 1] = অ্যারে [i] গণনা [(অ্যারে [i] / খনন)% 10] -} // অনুলিপি করুন আউটপুট অ্যারে থেকে আরে [], যাতে আরআর [] এখন // এর বর্তমান সংখ্যা অনুসারে বাছাই করা সংখ্যা থাকে (i = 0 i)

এগিয়ে অগ্রসর, আসুন Radix বাছাই বাস্তবায়নের জন্য একটি সি প্রোগ্রাম লিখি।

উদাহরণ:

# অন্তর্ভুক্ত // সর্বাধিক সংখ্যা INM getMax (int অ্যারে [], int n) সন্ধান করার জন্য ফাংশন {int সর্বোচ্চ = অ্যারে [0] int i এর জন্য (i = 1 i সর্বোচ্চ) সর্বাধিক = অ্যারে [i] সর্বোচ্চ সর্বাধিক} // কাউন্ট সাজানোর জন্য ফাংশন অকার্যকর কাউন্টসোর্ট (ইনট অ্যারে [], ইনট এন, ইন্ট ডিগ) {ইনপুট আউটপুট [এন] ইনট আই, গণনা [10] = {0} // (আই = 0 i= 0 i--) {আউটপুট [গণনা [(অ্যারে [i] / খনন)% 10] - 1] = অ্যারে [i] গণনা [(অ্যারে [i] / খনন)% 10] -} // অনুলিপি করুন আউটপুট অ্যারেতে অ্যারে [], যাতে আরআর [] এখন // বর্তমান অঙ্ক অনুসারে (i = 0 i 0 dig * = 10) গণনা অনুসারে বাছাই করুন (অ্যারে, এন, ডিগ)} // অ্যারে শূন্য প্রিন্ট করার কাজ মুদ্রণ (int arr [], int n) {int i for (i = 0 i)

আউটপুট

সাস একটি প্রোগ্রামিং ভাষা

আউটপুট- সি- এডুরেকাতে রেডিক্স বাছাই করার প্রোগ্রাম

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

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