কম্পিউটার

গণনা সাজানোর


গণনা বাছাই হল একটি স্থিতিশীল বাছাই কৌশল, যা ছোট সংখ্যার কী অনুসারে বস্তুগুলিকে সাজাতে ব্যবহৃত হয়। এটি কীগুলির সংখ্যা গণনা করে যার কী মান একই। এই বাছাই করার কৌশলটি কার্যকর হয় যখন বিভিন্ন কীগুলির মধ্যে পার্থক্য এত বড় না হয়, অন্যথায়, এটি স্থান জটিলতা বাড়াতে পারে৷

সর্ট টেকনিক গণনার জটিলতা

  • সময়ের জটিলতা:O(n+r)
  • স্পেস জটিলতা:O(n+r)

ইনপুট এবং আউটপুট

ইনপুট:সাজানো না হওয়া ডেটার একটি তালিকা:2 5 6 2 3 10 3 6 7 8 আউটপুট:সাজানোর আগে অ্যারে:2 5 6 2 3 10 3 6 7 8 সাজানোর পরে অ্যারে:2 2 3 3 5 6 6 7 810  

অ্যালগরিদম

গণনা বাছাই (অ্যারে, আকার)

ইনপুট :ডেটার একটি অ্যারে, এবং অ্যারের মোট সংখ্যা

আউটপুট :সাজানো অ্যারে

 শুরু করুন সর্বাধিক =অ্যারে থেকে সর্বাধিক উপাদান পান। i এর জন্য কাউন্ট অ্যারের আকার [সর্বোচ্চ+1] সংজ্ঞায়িত করুন :=0 থেকে সর্বোচ্চ ডু কাউন্ট[i] =0 // কাউন্ট অ্যারের সমস্ত উপাদানকে i এর জন্য 0 এ সেট করুন :=1 আকারে প্রতিটি সংখ্যার সংখ্যা বৃদ্ধি করে যা i :=1 থেকে সর্বাধিক ডো কাউন্ট[i] =কাউন্ট[i] + গণনা[i+1] // i এর জন্য করা ক্রমবর্ধমান ফ্রিকোয়েন্সি খুঁজুন :=সাইজ থেকে 1 কমতে 1 সংখ্যাটি সংরক্ষণ করুন আউটপুট অ্যারেতে গণনা হ্রাস করা হয়েছে 

উদাহরণ

#include#include namespace ব্যবহার করে std;void display(int *array, int size) { for(int i =1; i<=size; i++) cout < max) max =array[i]; } সর্বোচ্চ রিটার্ন; // অ্যারে থেকে সর্বাধিক উপাদান} void countSort(int *array, int size) { int output[size+1]; int max =getMax(অ্যারে, আকার); int গণনা [সর্বোচ্চ+1]; (int i =0; i<=max; i++) গণনা[i] =0 এর জন্য কাউন্ট অ্যারে (সর্বোচ্চ+1 উপাদান সংখ্যা) তৈরি করুন; //সকল শূন্যের জন্য গণনা অ্যারে শুরু করুন //গণনা অ্যারে সংখ্যা সংখ্যা বৃদ্ধি. for(int i =1; i<=max; i++) count[i] +=count[i-1]; //এর জন্য ক্রমবর্ধমান ফ্রিকোয়েন্সি খুঁজুন (int i =size; i>=1; i--) { output[count[array[i]]] =array[i]; গণনা [অ্যারে[i]] -=1; //একই সংখ্যার জন্য গণনা হ্রাস করুন } for(int i =1; i<=size; i++) { array[i] =output[i]; //স্টোর আউটপুট অ্যারে থেকে মেইন অ্যারে }}int main() { int n; cout <<"উপাদানের সংখ্যা লিখুন:"; cin>> n; int arr[n+1]; //প্রদত্ত সংখ্যক উপাদান সহ একটি অ্যারে তৈরি করুন cout <<"এন্টার উপাদান:" <> arr[i]; } cout <<"বাছাই করার আগে অ্যারে:"; প্রদর্শন (arr, n); countSort(arr, n); cout <<"বাছাই করার পরে অ্যারে:"; প্রদর্শন(arr, n);}

আউটপুট

এলিমেন্টের সংখ্যা লিখুন:10 এন্টার উপাদান:2 5 6 2 3 10 3 6 7 8 সাজানোর আগে অ্যারে:2 5 6 2 3 10 3 6 7 8 সাজানোর পরে অ্যারে:2 2 3 3 5 6 6 7 8 10 পূর্বে> 
  1. জাভাস্ক্রিপ্টে Array.prototype.sort()।

  2. বুদবুদ সাজান

  3. C# এ হিপ বাছাই

  4. গণনা সাজানোর জন্য পাইথন প্রোগ্রাম