Sort the values using Counting Sort Algo in C++, C

Here is the code : Debug, Run and Learn

#include <iostream>
#include <conio.h>

#define RANGE 100

using namespace std;

void main()
{
  int inputArray[] = {23, 1, 45, 13, 19, 16, 90, 23, 35, 12, 28, 67, 56, 23, 99, 23, 67, 45, 67, 34, 23};
  const int len = sizeof(inputArray) / sizeof(int);
  int count[RANGE + 1];
  int outputArray[len];

  memset(count, 0, sizeof(count));

  for (int index = 0; index < len; ++index)
  {
    ++count[inputArray[index]];
  }

  for (int index = 1; index <= RANGE; ++index)
  {
    count[index] += count[index - 1];
  }

  for (int index = 0; index < len; ++index)
  {
    outputArray[count[inputArray[index]] - 1] = inputArray[index];
    --count[inputArray[index]];
  }

  cout << "Unsorted Values " << endl;
  for (int index = 0; index < len; ++index)
  {
    cout << inputArray[index] << " ";
  }

  cout << "\n\nSorted Values " << endl;
  for (int index = 0; index < len; ++index)
  {
    cout << outputArray[index] << " ";
  }

 /* cout << "\n\nCount Array Values " << endl;
  for (int index = 0; index < RANGE; ++index)
  {
    cout << count[index] << " ";
  }*/

  _getch();
}

Thanks

Comments

Popular Posts