#include #include #include using namespace std; void bucketSort(vector &arr) { int n = arr.size(); vector> buckets(n); for (int i = 0; i < n; i++) { int index = n * arr[i]; buckets[index].push_back(arr[i]); } for (int i = 0; i < n; i++) sort(buckets[i].begin(), buckets[i].end()); // O(n log n) sort int idx = 0; for (int i = 0; i < n; i++) for (int j = 0; j < buckets[i].size(); j++) arr[idx++] = buckets[i][j]; } int main() { int n; cin >> n; vector arr(n); for (int i = 0; i < n; i++) cin >> arr[i]; //between 0 and 1 bucketSort(arr); for (int i = 0; i < n; i++) cout << arr[i] << ' '; cout << '\n'; return 0; }