Pengertian Algoritma Pengurutan - Radix Sort
Algoritma Pengurutan - Radix sort merupakan metode pengurutan dimana angka akan dipcahkan menjadi satuan, puluhan, dan ratusan, bahkan ribuan.
Saya akan menjelaskan algoritma tersebut. Bisa saya ambil contoh angka angka yang perlu diurutkan.
345, 890, 876, 29, 18, 190, 789, 100, 562, 962.
- Tahap 1.
Mengurutkan melalui angka satuan. lihat di bawah ini:
345, 890, 876, 29, 18, 190, 789, 100, 562, 962.
0 >> 890, 190, 100
1 >> --
2 >> 562, 962
3 >> --
4 >> --
5 >> 345
6 >> 876
7 >> --
8 >> 18
9 >> 29, 789
Setelah diurutkan melalu kalisifkasi satuan terkecil ke terbesar, akan meghasilkan seperti ini :
890, 190, 100, 562, 962, 345, 876, 18, 29, 789
- Tahap 2
Mengurutkan melalui angka puluhan. lihat di bawah ini:
Angka urutan setelah tahap pertama:
890, 190, 100, 562, 962, 345, 876, 18, 29, 789
0 >> 100
1 >> 18
2 >> 29
3 >> --
4 >> 345
5 >> --
6 >> 562, 962
7 >> 876
8 >> 789
9 >> 890, 190
Setelah diurutkan melalu kalisifikasi puluhan terkecil ke besar, akan meghasilkan seperti ini :
100, 18, 29, 345, 562, 962, 876, 789, 890, 190
- Tahap 3
Mengurutkan melalui angka klasifikasi ratusan terkecil ke terbesar . lihat di bawah ini:
Angka urutan setelah tahap pertama:
100, 018, 029, 345, 562, 962, 876, 789, 890, 190
0 >> 18, 29
1 >> 100, 190
2 >> --
3 >> 345
4 >> --
5 >> 562
6 >> --
7 >> 789
8 >> 876, 890
9 >> 962
Setelah diurutkan melalu kalisifikasi Ratusan terkecil ke besar, akan meghasilkan seperti ini :
18, 29, 100, 190, 345, 562, 789, 876, 890, 962
Itulah Algoritma Yang digunakan dalam pengurutan jika menggunakan Radix Sort. Sebelum selesai, saya akan memberikan sources code yang bisa kalian pahami.
Sources Code Algotima Pengurutan - Radix Sort
#include <bits/stdc++.h>using namespace std;void countSort(int nilai[], int inputan, int k){int output[inputan];int i, NILAI[inputan] = {0};for (i = 0; i < inputan; i++){NILAI[ (nilai[i]/k)%10 ]++;}for (i = 1; i < 10; i++){NILAI[i] += NILAI[i - 1];}for (i = inputan - 1; i >= 0; i--){output[NILAI[ (nilai[i]/k)%10 ] - 1] = nilai[i];NILAI[ (nilai[i]/k)%10 ]--;}for (i = 0; i < inputan; i++){nilai[i] = output[i];}}void radixSort(int nilai[], int inputan){int z = nilai[0];for (int i = 1; i < inputan; i++){if (z < nilai[i]){z = nilai[i];}}int m = z;for (int k = 1; m/k > 0; k*=10){countSort(nilai, inputan, k);}}void print(int nilai[], int inputan){for (int i = 0; i < inputan; i++){cout << nilai[i] << " ";}}int main(){int inputan;cout << "Berapa inputan yang diingingkan : ";cin >> inputan;int nilai[inputan];for (int l = 0; l < inputan; l++){cout << "Input Nilai " << l + 1 << " : ";cin >> nilai[l];}cout << endl;cout <<"Data nilai yang belum diurutkan" << endl;for (int l = 0; l < inputan; l++){cout << nilai[l] << " ";}cout << endl;cout << endl;cout << "Data nilai yang telah diurutkan : "<<endl;radixSort (nilai, inputan);print (nilai, inputan);return 0;}
Saya mengalami kesulitan keuangan hingga saya menemukan situs web perusahaan pinjaman Tn. Pedro. Saya menghubungi mereka melalui email pedroloanss@gmail.com dan WhatsApp +393510140339. Mereka menawarkan pinjaman sebesar £86.000 dengan pengembalian tahunan 2% untuk membantu mengembangkan bisnis saya. Prosesnya transparan dan cepat. Sangat merekomendasikan mereka sebagai penyedia pinjaman yang andal.
ReplyDelete