starfoxleader

Lab 05

Mar 11th, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. // Matthew Felix
  2. // CSE-100
  3. // Spring 2020
  4. // 3.12.2020
  5.  
  6. #include <iostream>
  7. #include <vector>
  8. using namespace std;
  9.  
  10. void printVector(vector<int>* v1, int n) {
  11.     for (int i = 0; i < n; i++)
  12.     {
  13.         for (int j = 0; j < 10; j++)
  14.         {
  15.             cout << v1[i][j] << ";";
  16.         }
  17.         cout << endl;
  18.     }
  19. }
  20.  
  21. //used pseudocode from the slides
  22.  
  23. void countingSort(vector<int>* v1, int n, int i) {
  24.     //create a vector v2 with n size
  25.     //using pointers
  26.  
  27.     vector<int>* v2;
  28.     v2 = new vector<int>[n];
  29.  
  30.     //array of length 10, all values are 0
  31.  
  32.     int* arr = new int[10];
  33.  
  34.     for (int z = 0; z < 10; z++) {
  35.         arr[z] = 0;
  36.     }
  37.  
  38.     //pseudocode from lecture slides
  39.     for (int j = 0; j < n; j++) {
  40.         arr[v1[j][i]] = arr[v1[j][i]] + 1;
  41.     }
  42.  
  43.     for (int j = 1; j < 10; j++) {
  44.         arr[j] = arr[j] + arr[j - 1];
  45.     }
  46.  
  47.     for (int j = n - 1; j >= 0; j--) {
  48.         v2[arr[v1[j][i]] - 1] = v1[j];
  49.         arr[v1[j][i]] = arr[v1[j][i]] - 1;
  50.     }
  51.  
  52.     for (int i = 0; i < n; i++)
  53.     {
  54.         v1[i] = v2[i];
  55.     }
  56.    
  57. }
  58.  
  59. //radix sorting
  60. void radixSort(vector<int>* v1, int n) {
  61.     for (int i = 9; i >= 0; i--)
  62.     {
  63.         countingSort(v1, n, i);
  64.     }
  65. }
  66.  
  67. int main()
  68. {
  69.     // get user input
  70.     int n;
  71.     cin >> n;
  72.  
  73.     //pointers to set the vector size
  74.     vector<int>* v1;
  75.     v1 = new vector<int>[n];
  76.  
  77.     //get user inputs
  78.     for (int i = 0; i < n; i++)
  79.     {
  80.         for (int j = 0; j < 10; j++) {
  81.             int values;
  82.             cin >> values;
  83.             v1[i].push_back(values);
  84.         }
  85.     }
  86.  
  87.     //radix sort
  88.     radixSort(v1, n);
  89.  
  90.     //print the sorted vectors
  91.     printVector(v1, n);
  92.  
  93.     return 0;
  94. }
Add Comment
Please, Sign In to add comment