Radix sorting adalah metode sorting pada C++ yang mana melakukan pengurutan tanpa membandingkan value didalamnya.
Berikut program radix sortnya :
#include <iostream>
#include <stdlib.h>
using namespace std;
int getMax (int arr[], int n)
{
int max = arr [0];
for (int i = 1; i<n; i++){
if (arr[i]>max)
max = arr[i];
}
return max;
}
#include <stdlib.h>
using namespace std;
int getMax (int arr[], int n)
{
int max = arr [0];
for (int i = 1; i<n; i++){
if (arr[i]>max)
max = arr[i];
}
return max;
}
void countSort (int arr[], int n, int exp)
{
int output[n], 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];}
}
{
int output[n], 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 radixsort(int arr[], int n)
{
int exp, m;
m = getMax (arr, n);
for (exp=1;m/exp>0; exp *= 10){
countSort (arr, n, exp);}
}
{
int exp, m;
m = getMax (arr, n);
for (exp=1;m/exp>0; exp *= 10){
countSort (arr, n, exp);}
}
int main()
{
int n, i;
cout<<"\nMasukkan jumlah data yang akan diurutkan : ";
cin>>n;
int arr[n];
for(i=0; i<n; i++)
{
cout<<"data ke- "<<i+1<<" :";
cin>>arr[i];
}
radixsort(arr, n);
cout<<"\nUrutkan Data ";
for (i=0; i<n;i++){
cout<<" -> "<<arr[i];
}
system("pause");
return 0;
}
{
int n, i;
cout<<"\nMasukkan jumlah data yang akan diurutkan : ";
cin>>n;
int arr[n];
for(i=0; i<n; i++)
{
cout<<"data ke- "<<i+1<<" :";
cin>>arr[i];
}
radixsort(arr, n);
cout<<"\nUrutkan Data ";
for (i=0; i<n;i++){
cout<<" -> "<<arr[i];
}
system("pause");
return 0;
}
Program diatas menggunakan 1 fungsi dan 2 prosedur, yang mana fungsi int getMax adalah untuk mendapatkan nilai maksimal yang ingin di sorting. Kemudian ada prosedur void countSort; & void radixsort. Agar tidak bingung dengan coding program diatas, sangat disarankan kalian sudah menguasai array & perulangan.
Sekian posting kali, semoga bermanfaat dan semoga tugasnya terbantu
Thanks for reading & sharing RZDev: Belajar Programming!
0 comments:
Post a Comment