বালতি বাছাই কৌশলে, ডেটা আইটেমগুলি বালতিগুলির একটি সেটে বিতরণ করা হয়৷ প্রতিটি বালতি একই ধরণের ডেটা ধারণ করতে পারে। বিতরণ করার পরে, প্রতিটি বালতি অন্য সাজানোর অ্যালগরিদম ব্যবহার করে সাজানো হয়। এর পরে, সাজানো ফর্ম পেতে সমস্ত উপাদান মূল তালিকায় একত্রিত হয়।
বালতি সাজানোর কৌশলের জটিলতা
-
সময়ের জটিলতা:সেরা ক্ষেত্রে ও গড় ক্ষেত্রে O(n + k) এবং সবচেয়ে খারাপ ক্ষেত্রে O(n^2)।
-
স্থান জটিলতা:O(nk) সবচেয়ে খারাপ ক্ষেত্রে
ইনপুট এবং আউটপুট
অ্যালগরিদম
bucketSort(অ্যারে, আকার)
ইনপুট - ডেটার একটি অ্যারে, এবং অ্যারের মোট সংখ্যা
আউটপুট - সাজানো অ্যারে
i এর জন্য শুরু করুন :=0 থেকে সাইজ-1 ডু বালতি সূচকে অ্যারে[i] ঢোকান (আকার * অ্যারে[i]) i এর জন্য করা হয়েছে :=0 থেকে সাইজ-1 ডু সর্ট বালতি[i] i এর জন্য করা হয়েছে :=0 থেকে সাইজ -1 বালতির আইটেমগুলি সংগ্রহ করে এবং অ্যারেতে রাখুন শেষ
উদাহরণ
#include#include #include namespace ব্যবহার করে std;void display(float *array, int size) { for(int i =0; i bucket[size]; for(int i =0; i > n; float arr[n]; //প্রদত্ত সংখ্যক উপাদান সহ একটি অ্যারে তৈরি করুন cout <<"এন্টার উপাদান:" < > arr[i]; } cout <<"বাছাই করার আগে অ্যারে:"; প্রদর্শন (arr, n); bucketSort(arr, n); cout <<"বাছাই করার পরে অ্যারে:"; প্রদর্শন(arr, n);}
আউটপুট
উপাদানের সংখ্যা লিখুন:10 হিট উপাদান:0.25 0.26 0.58 0.41 0.29 0.2.45 0.79 0.01 0.69array সাজানোর আগে:0.25 0.26 0.45 0.79 0.29 0.69.array সাজানোর পরে:0.01 0.22 0.25 0.29 0.69 0.41 0.45 0.58 0.69 0.279