From d77239bb5e54550610857afb3a7917a88a421a1e Mon Sep 17 00:00:00 2001 From: JotiradityaB <114105421+JotiradityaB@users.noreply.github.com> Date: Sat, 1 Oct 2022 15:07:27 +0530 Subject: [PATCH] Added bucket sort algorithm c++ folder under algorithm/sorting --- C++/Algorithms/Sorting/bucket-sort.cpp | 47 ++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 C++/Algorithms/Sorting/bucket-sort.cpp diff --git a/C++/Algorithms/Sorting/bucket-sort.cpp b/C++/Algorithms/Sorting/bucket-sort.cpp new file mode 100644 index 000000000..3c3d7023a --- /dev/null +++ b/C++/Algorithms/Sorting/bucket-sort.cpp @@ -0,0 +1,47 @@ + +// C++ program to sort an +// array using bucket sort +#include +#include +#include +using namespace std; + +// Function to sort arr[] of +// size n using bucket sort +void bucketSort(float arr[], int n) +{ + + // 1) Create n empty buckets + vector b[n]; + + // 2) Put array elements + // in different buckets + for (int i = 0; i < n; i++) { + int bi = n * arr[i]; // Index in bucket + b[bi].push_back(arr[i]); + } + + // 3) Sort individual buckets + for (int i = 0; i < n; i++) + sort(b[i].begin(), b[i].end()); + + // 4) Concatenate all buckets into arr[] + int index = 0; + for (int i = 0; i < n; i++) + for (int j = 0; j < b[i].size(); j++) + arr[index++] = b[i][j]; +} + +/* Driver program to test above function */ +int main() +{ + float arr[] + = { 0.897, 0.565, 0.656, 0.1234, 0.665, 0.3434 }; + int n = sizeof(arr) / sizeof(arr[0]); + bucketSort(arr, n); + + cout << "Sorted array is \n"; + for (int i = 0; i < n; i++) + cout << arr[i] << " "; + return 0; +}