Radix sort হল একটি অ-তুলনামূলক সাজানোর অ্যালগরিদম৷ এই বাছাই অ্যালগরিদম পূর্ণসংখ্যা কীগুলিতে কাজ করে সংখ্যাগুলিকে গোষ্ঠীবদ্ধ করে যা একই অবস্থান এবং মান ভাগ করে। রেডিক্স হল একটি সংখ্যা পদ্ধতির ভিত্তি। আমরা জানি যে দশমিক পদ্ধতিতে রেডিক্স বা ভিত্তি হল 10। তাই কিছু দশমিক সংখ্যা বাছাই করার জন্য, সংখ্যা সংরক্ষণের জন্য আমাদের 10টি অবস্থানগত বাক্স প্রয়োজন।
র্যাডিক্স সাজানোর কৌশলের জটিলতা
- সময়ের জটিলতা:O(nk)
- স্পেস জটিলতা:O(n+k)
ইনপুট এবং আউটপুট
ইনপুট:বিন্যাস করা তালিকা:802 630 20 745 52 300 612 932 78 187 আউটপুট:সাজানোর আগে ডেটা:802 630 20 745 52 300 612 932 78 78 1320 1820 1320 1320 1320 1320 পূর্বে>অ্যালগরিদম
radixSort(অ্যারে, সাইজ, maxDigit)ইনপুট - ডেটার একটি অ্যারে, এবং অ্যারের মোট সংখ্যা, সর্বাধিক সংখ্যার সংখ্যা সংখ্যা
আউটপুট - সাজানো অ্যারে।
i :=0 থেকে সর্বোচ্চ -1 do m =10^i+1 p :=10^i এর জন্য j :=0 থেকে n-1 do temp :=array[j] mod এর জন্য 10টি তালিকাকে পকেট হিসাবে সংজ্ঞায়িত করুন m index :=temp / p pocket[index].append(array[j]) সম্পন্ন গণনা :=0 এর জন্য j :=0 থেকে রেডিক্স ডু যখন পকেট [j] খালি অ্যারে নয় [count] :=এর প্রথম নোড পান পকেট [জে] এবং মুছে ফেলুন গণনা :=গণনা +1 সম্পন্ন হয়েছে শেষউদাহরণ
#include#include #include
namespace ব্যবহার করে std;void display(int *array, int size) { for(int i =0; i পকেট[10]; // দশমিক সংখ্যার রেডিক্স হল 10 এর জন্য (i =0; i<সর্বোচ্চ; i++) { m =pow(10, i+1); p =pow(10, i); (j =0; j > n; cout <<"উপাদানের সর্বাধিক সংখ্যা লিখুন:"; cin>> সর্বোচ্চ; int arr[n]; //প্রদত্ত সংখ্যক উপাদান সহ একটি অ্যারে তৈরি করুন cout <<"এন্টার উপাদান:" < > arr[i]; } cout <<"বাছাই করার আগে ডেটা:"; প্রদর্শন (arr, n); radixSort(arr, n, max); cout <<"বাছাই করার পরে ডেটা:"; প্রদর্শন(arr, n);} আউটপুট
উপাদানের সংখ্যা লিখুন:10 উপাদানগুলির সর্বাধিক সংখ্যা লিখুন:3 উপাদানগুলি লিখুন:802 630 20 745 52 300 612 932 78 187 বাছাই করার আগে ডেটা:802 630 20 745 52 29187827827800 পরে 612 630 745 802 932