#include #include #include //typdef vector List; using namespace std; void increment(int Num[], int k); // PRE: Num is an array of length k (the "buckets") // POST: The integer stored in the k'th node of Num int getVal(int Num[], int k); // PRE: Num is an array of length k // POST: Returns the integer stored in the k'th node of Num. int length(int Num[]); // POST: Returns the length of Num. void bucketSort(int A[], int n, int Num[]) { for (int i= 0; i < n; i++){ int k=A[i]; increment(Num, k);} int m= 0; int sofar= 0; for (int j = 0; j < length(Num); j++){ for(; m< sofar + getVal(Num, j); m++) A[m]= j; sofar= m; } } int main() { int A[]= { 3, 2,3,3,1,2,3,3,1,2,3,3}; int Num[4]= {0,0,0,0}; bucketSort(A, 12, Num); for(int i= 0; i < 12; i++) { cout << A[i] << " "; } cout << endl; }