Hello. I need help with the Bucket Sort. I searched through the C++ board, as well as my book and couldn't find anything useful to me. The code is below.
Thanks!
Code:#include <iostream> #include <iomanip> #include <vector> #include <ctime> #include <cstdlib> using namespace std; vector <int> FillVec (void); void PrintVec (vector <int>); void BucketSort (vector <int> &); void Gathering (vector <int> &, int); int main (void) { vector <int> IntVector (55); srand(time(NULL)); int number,digitCnt=0; cout<<"Enter the Number: "; cin>>number; while(number) { number=number/10; digitCnt++; } cout<<digitCnt<<endl; IntVector = FillVec (); PrintVec (IntVector); BucketSort (IntVector); PrintVec (IntVector); return 0; } vector <int> FillVec (void) { int cnt = 0; vector <int> TempVec (55); for (int i = 0; i < 50; i++) { TempVec[i] = rand() % 100 + 1; } return TempVec; } void PrintVec (vector <int> ivec) { for (int index = 0; index < 50; index++) { cout << ivec[index] << endl; } } void BucketSort (vector <int> & ivec) { for (int Pass = 10; Pass < 1000000; Pass *= 10) { Gathering (ivec, Pass); } } void Gathering (vector <int> & ivec, int ps) { int pairs, index, x, y, z; vector <int> aVec(10); x = y; for(index = 0; index < 50; index++) { z = ivec[index] / ps; z = z * ps; z = ivec[index] - z; aVec[z].push_back(ivec[index]); } for(y = 0; y < 10; y++) { for(pairs = 0; pairs < aVec[pairs].size(); pairs++) { ivec[x] = aVec[y][pairs]; x++; } } }



LinkBack URL
About LinkBacks


