রৈখিক সময়ে কিছু ছোট সংখ্যা সাজানোর জন্য আমরা গণনা সাজানোর কৌশল ব্যবহার করতে পারি।
কাউন্টিং সর্ট হল একটি স্থিতিশীল বাছাই করার কৌশল, যা ছোট সংখ্যার কী অনুযায়ী বস্তু বাছাই করতে ব্যবহৃত হয়। এটি কীগুলির সংখ্যা গণনা করে যার কী মান একই। এই বাছাই কৌশলটি কার্যকর যখন বিভিন্ন কীগুলির মধ্যে পার্থক্য এত বড় না হয়, অন্যথায় এটি স্থান জটিলতা বাড়াতে পারে৷
সর্ট টেকনিক গণনার জটিলতা
-
সময়ের জটিলতা :O(n + r)
-
মহাকাশের জটিলতা :O(n + r)
ইনপুট − সাজানো তথ্যের একটি তালিকা:2 5 6 2 3 10 3 6 7 8আউটপুট − সাজানোর পর অ্যারে:2 2 3 3 5 6 6 7 8 10
অ্যালগরিদম
countingSort(অ্যারে, আকার)
ইনপুট − ডেটার একটি অ্যারে, এবং অ্যারের মোট সংখ্যা
আউটপুট - সাজানো অ্যারে
শুরু করুন সর্বাধিক =অ্যারে থেকে সর্বাধিক উপাদান পান। i এর জন্য কাউন্ট অ্যারের আকার [সর্বোচ্চ+1] সংজ্ঞায়িত করুন :=0 থেকে সর্বোচ্চ ডু কাউন্ট[i] =0 // কাউন্ট অ্যারের সমস্ত উপাদানকে i এর জন্য 0 এ সেট করুন :=1 আকারে প্রতিটি সংখ্যার সংখ্যা বৃদ্ধি করে যা i :=1 থেকে সর্বাধিক ডো কাউন্ট[i] =গণনা[i] + গণনা[i + 1] // i এর জন্য করা ক্রমবর্ধমান ফ্রিকোয়েন্সি খুঁজুন :=আকার থেকে 1 হ্রাস 1 দ্বারা সংখ্যা সংরক্ষণ করুন আউটপুট অ্যারেতে গণনা হ্রাস করা হয়েছেউদাহরণ কোড
#includenamespace ব্যবহার করে std;void counting_sort(int array[], int n) { int i, j; int গণনা [n]; (i =0; i 0; (count[i])--) অ্যারে[j++] =i;}int main() { int array [100], i, সংখ্যা; cout <<"অ্যারের আকার লিখুন :"; cin>> num; cout <<"বাছাই করার জন্য " < > অ্যারে[i]; cout <<"\nবাছাই করার আগে উপাদানগুলির অ্যারে :" < আউটপুট
অ্যারের আকার লিখুন :8 সাজানোর জন্য 8টি উপাদান প্রবেশ করান:54 89 23 20 18 88 65 31 সাজানোর আগে উপাদানগুলির অ্যারে :54 89 23 20 18 88 65 31 সাজানোর পর উপাদানগুলির অ্যারে :54 89 23 65 31 88 65 31