#include <iostream>
#include <omp.h>
#include <vector>
using
namespace
std;
int
getMax(vector<
int
> arr,
int
n)
{
int
mx = arr[0];
for
(
int
i = 1; i < n; i++)
if
(arr[i] > mx)
mx = arr[i];
return
mx;
}
void
countSort(vector<
int
>& arr,
int
n,
int
exp
)
{
int
output[n];
int
i, count[10] = { 0 };
for
(i = 0; i < n; i++)
count[(arr[i] /
exp
) % 10]++;
for
(i = 1; i < 10; i++)
count[i] += count[i - 1];
for
(i = n - 1; i >= 0; i--) {
output[count[(arr[i] /
exp
) % 10] - 1] = arr[i];
count[(arr[i] /
exp
) % 10]--;
}
for
(i = 0; i < n; i++)
arr[i] = output[i];
}
void
parallelCountSort(vector<
int
>& arr,
int
n)
{
int
m = getMax(arr, n);
for
(
int
exp
= 1; m /
exp
> 0;
exp
*= 10) {
for
(
int
i = 0; i < n; i++)
countSort(arr, n,
exp
);
}
}
int
main()
{
vector<
int
> arr = { 170, 45, 75, 90, 802, 24, 2, 66 };
int
n = arr.size();
cout <<
"Array before sorting: \n"
;
for
(
int
i = 0; i < n; i++) {
cout << arr[i] <<
" "
;
}
cout <<
"\n"
;
parallelCountSort(arr, n);
cout <<
"Array after sorting: \n"
;
for
(
int
i = 0; i < n; i++) {
cout << arr[i] <<
" "
;
}
return
0;
}
Stay connected with us on social media platform for instant update click here to join our Twitter, & Facebook We are now on Telegram. Click here to join our channel (@TechiUpdate) and stay updated with the latest Technology headlines. For all the latest Technology News Click Here