Home » , » Program C++ Radix Sorting

Program C++ Radix Sorting

Posted by RezkyCpp: Practice Does Not Make Perfect on Sunday, July 22, 2018

Program C++ Radix Sorting

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;
}
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];}

}
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 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;
}

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 RezkyCpp: Practice Does Not Make Perfect

Newest
You are reading the newest post

0 comments:

Post a Comment

Search