ALGORITMA DAN KOMPLEKSITAS

SORTING
NPM

: 43A87006100112

Nama : Mujan
Dosen : Heri Juhari, S.Kom

Soal:
Buatlah 200 data urutkan dengan system sort salah satu:
1. Metode squensial
2. Metode Bineri
3. Metode Radix
4. Metode Heap
5. Metode Merger

-

Buat Algoritma

-

Buat SnapShot

-

Buat Analisi Terhadap Kompleksitas

-

Kesimpulan

By: Mujan - 43A87006100112

Proses dasar Radix Sort adalah mengkategorikan data-data menjadi subkumpulansubkumpulan data sesuai dengan nilai radix-nya. Di mana sederhananya. kemudian mengkategorikannya kembali berdasar nilai radix lainnya. dan array B adalah array A yang sudah terurut. di mana pemrosesan dimulai dari radix yang paling signifikan. Array A adalah array input.43A87006100112 . mudah. Dalam implementasinya. Namun banyak orang yang berpikir bahwa algoritma ini memiliki banyak batasan di mana untuk kasuskasus tertentu tidak dapat dilakukan dengan algoritma ini.Metode Radix Pengertian dan Algoritma Radix Sort merupakan algoritma pengurutan yang ajaib yang mana mengatur pengurutan nilainya tanpa melakukan beberapa perbandingan pada data yang dimasukkan. mengkonkatenasinya. di mana pemrosesan dimulai dari radix yang paling tidak signifikan. dan sangat efektif. dan MSD (Most Significant Digit). seperti pengurutan bilangan pecahan dan bilangan negatif. Berdasarkan urutan pemrosesan radixnya. radix adalah digitnya. By: Mujan . Radix Sort terbagi 2 macam. yang direalisasikan dengan menggunakan queue sebagai representasi tiap kategori radix untuk pengkategorian. dalam representasi desimal. Radix Sort merupakan algoritma pengurutan yang cepat. yaitu: LSD (Least Significant Digit). Implementasi dari algoritma tersebut dibuat dengan menggunakan bahasa Pascal. Kata radix bermakna harafiah posisi dalam angka [1].

i. B[ctr]:=DeQueue (KatRadix [i]). pembagi : longword.mengkopi A ke B ---} for i:=1 to n do B[i] := A[i]. end. {--. x. ctr : integer. var KatRadix : array [0.dikategorikan ---} for i:=1 to n do i: Enqueue (KatRadix [(B[i] div pembagi) mod 10].43A87006100112 . B[i]).. end. 1 Baca kiri. for x:=1 to d do begin {--. pembagi := 1. begin {--. end. var B : TArray. d : byte). pembagi := pembagi * 10.knn -bwh No 1 2 3 4 5 6 7 8 9 10 1 234 435 345 678 890 456 424 321 245 764 2 223 445 332 225 367 980 221 232 243 534 3 237 112 141 554 553 224 667 890 708 234 By: Mujan . {--. Snapshot Berdasar dari soal di atas untuk mengurutkan 200 data maka saya ambil sebuah kumpulan data bilangan bulat dengan jumlah digit 3.dikonkat ---} ctr := 0.inisialisasi KatRadix ---} for i:=0 to 9 do InitQueue (KatRadix[i]). B[i] := 0. end.9] of Queue. for i:=0 to 9 do begin while (NOT IsQueueEmpty (KatRadix[i])) do begin ctr := ctr + 1.Procedure RadixSort (A : TArray.

Yang ke dua 235 masukkan ke kolom dengan no 5. cel(1. Pertama kali. misal isi Tabel 1. sesuaikan dengan kolomnya) 2 Kategori digit 1 isi 1 2 3 4 5 6 7 8 9 10 0 890 980 890 330 770 670 240 550 680 660 1 321 221 141 231 331 111 881 321 671 241 2 332 232 112 552 232 332 222 002 222 432 3 223 243 553 123 343 343 113 213 543 433 4 234 424 764 534 554 224 234 124 894 334 5 435 345 245 445 225 565 575 345 545 445 6 456 556 776 886 456 136 776 436 116 556 7 367 237 667 787 657 887 667 887 557 987 8 678 708 578 778 818 778 668 998 568 878 9 999 399 899 669 239 549 679 659 379 279 By: Mujan .1) 234 warna merah jambu merupakan urutan proses pertama di tabel 2.43A87006100112 . Lalu dilanjutkan baris kedua.4 123 5 556 6 887 2 7 818 8 345 9 321 10 334 11 664 12 234 13 546 14 679 15 657 16 377 17 270 18 140 19 227 20 050 552 787 667 886 002 222 445 665 235 549 677 659 373 278 156 220 079 565 334 445 778 399 116 543 666 236 548 678 658 379 279 147 229 043 575 657 343 668 899 113 665 667 237 547 680 660 380 280 148 230 042 345 544 111 998 881 765 775 668 238 550 684 664 384 281 149 231 879 124 343 222 999 770 556 442 669 239 554 682 662 381 282 150 236 983 231 332 330 456 776 432 433 670 240 552 681 663 383 283 151 233 069 232 344 887 125 775 213 567 671 241 551 683 661 382 284 152 239 089 331 545 778 136 568 344 878 672 242 553 685 665 385 285 153 136 981 894 578 776 557 436 987 432 325 514 564 321 023 043 056 098 101 746 Tabel 1. data dibagi-bagi sesuai dengan digit terkanan: Warna menunjukkan urutan proses dari setiap pindah baris (1-20). (lihat angka paling kanan. ketiga dst. Angka 234 di tahap ini dimasukkan ke kolom dengan no 4. Dilanjutkan sampai kolom ke 10.

kemudian kolom 2 dan seterusnya Kemudian pengkategorian dilakukan kembali. 2 1 isi Kategori digit 0 1 2 3 4 5 6 7 8 9 1 101 111 220 330 240 550 660 770 980 890 By: Mujan .11 12 13 14 15 16 17 18 19 20 21 22 23 24 380 270 280 140 150 220 230 050 551 681 321 661 381 281 151 231 101 981 442 432 672 242 552 682 662 382 282 152 042 553 683 663 023 373 383 043 283 153 233 043 983 544 344 344 334 664 234 514 554 564 684 664 384 284 125 345 775 765 445 665 775 665 325 235 685 665 385 285 666 236 546 056 156 236 136 746 567 667 237 547 677 657 377 147 227 668 238 548 678 658 278 148 098 149 229 239 079 879 069 089 Tabel 2 Hasil pengkategorian tersebut lalu digabung kembali dengan metode konkatenasi menjadi: 890. …. 890.…981. 321. 141. namun kali ini berdasar digit kedua atau digit tengah. 980. kemudian dilanjutkan kolom 1 kebawah. Baca dari kolom 0 kebawah.…050.. dan jangan lupa bahwa urutan pada tiap sub kumpulan data harus sesuai dengan urutan kemunculan pada kumpulan data.43A87006100112 . 221.

002.2 002 112 321 230 140 150 661 670 680 3 708 113 221 231 141 050 662 270 380 4 213 321 331 241 551 663 671 280 5 514 321 231 442 151 764 672 881 6 116 222 332 242 552 664 373 681 7 818 222 232 042 552 564 575 381 8 223 232 243 152 664 775 281 9 123 332 343 553 565 775 981 10 023 432 343 553 765 776 682 11 424 432 543 153 665 776 382 12 224 433 043 554 665 677 282 13 124 233 043 554 665 377 683 14 225 234 544 456 666 678 383 15 125 534 344 556 367 578 283 16 325 234 344 456 667 778 983 17 227 334 345 556 667 778 684 18 229 334 245 056 567 878 384 19 234 445 156 667 678 284 20 435 345 657 668 278 685 21 235 545 557 568 679 385 22 136 445 657 668 379 285 23 436 345 658 669 279 886 24 25 26 27 28 29 30 31 32 236 236 136 237 237 238 239 239 890 894 998 098 999 399 899 445 659 069 079 787 546 879 887 746 887 547 987 147 089 548 148 549 149 Tabel 3 Yang kemudian dikonkatenasi kembali kembali menjadi: 101.112...708 111..818 …… dst By: Mujan .113.43A87006100112 .

atau yang paling signifikan.Baca dari kolom 0 dari atas ke bawah. kemudian kolom 2 dan seterusnya Kemudian langkah ketiga. 2 1 isi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0 002 023 042 043 043 050 056 069 079 089 098 1 101 111 112 113 116 123 124 125 136 136 140 141 147 148 149 150 151 152 153 156 2 213 220 221 222 222 223 224 225 227 229 230 231 231 232 232 233 234 234 234 235 236 236 237 237 238 239 239 240 241 242 243 Kategori digit 3 4 5 6 321 424 514 657 321 432 534 657 321 432 543 658 325 433 544 659 330 435 545 660 331 436 546 661 332 442 547 662 332 445 548 663 334 445 549 664 334 445 550 664 343 456 551 665 343 456 552 665 344 552 665 344 553 666 345 553 667 345 554 667 345 554 667 367 556 668 373 556 668 377 557 669 379 564 670 380 565 671 381 567 672 382 568 677 383 575 678 384 578 678 385 679 399 680 681 682 683 245 684 7 708 746 764 765 770 775 775 776 776 778 778 787 8 818 878 879 881 886 887 887 890 890 894 899 9 980 981 983 987 998 999 1 2 By: Mujan . atau langkah terakhir pada contoh ini adalah pengkategorian kembali berdasar digit terkiri.43A87006100112 . kemudian dilanjutkan kolom 1 dari atas ke bawah.

Kalau dibuat tabel hasil akhirnya sebagai berikut (ascending): 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 98 136 156 229 235 242 284 334 373 424 456 549 556 2 23 101 140 213 230 236 243 285 334 377 432 456 550 557 3 42 111 141 220 231 236 245 321 343 379 432 514 551 564 4 43 112 147 221 231 237 270 321 343 380 433 534 552 565 5 43 113 148 222 232 237 278 321 344 381 435 543 552 567 6 50 116 149 222 232 238 279 325 344 382 436 544 553 568 7 56 123 150 223 233 239 280 330 345 383 442 545 553 575 8 69 124 151 224 234 239 281 331 345 384 445 546 554 578 9 79 125 152 225 234 240 282 332 345 385 445 547 554 657 10 89 136 153 227 234 241 283 332 367 399 445 548 556 657 By: Mujan . Yang kemudian di konkatenasi lagi menjadi 002.. Kalau sebaliknya (Descending) berarti di baca dari angka paling bawah di kolom 9 keatas.43A87006100112 .098 101. kemudian kolom 8 dari baris paling bawah keatas dan seterusnya sampai kolom 0. kemudian dilanjutkan kolom 1 kebawah.111..112…156 Baca dari kolom 0 ke bawah. kemudian kolom 2 dan seterusnya (Pengurutan dari kecil ke besar /Ascending).023.33 34 35 36 37 38 39 40 270 278 279 280 281 282 283 284 41 285 685 Tabel 4.042.

15 16 17 18 19 20 658 665 672 685 778 890 659 666 677 708 778 890 660 667 678 746 787 894 661 667 678 764 818 899 662 667 679 765 878 980 663 668 680 770 879 981 664 668 681 775 881 983 664 669 682 775 886 987 665 670 683 776 887 998 665 671 684 776 887 999 Tabel 5. Radix Sort dapat lebih lambat dibandingkan dengan beberapa algoritma lain seperti Quick Sort dan Merge Sort. Operasi ini termasuk memasukkan dan menghapus fungsi sublists dan proses mengisolasi angka yang diinginkan. dan jika operasi tidak cukup efisien. Analisis dan Kesimpulan Ada beberapa masalah untuk Radix Sort yang membuatnya kurang disukai dibandingkan jenis sorting lainnya. Jika nomor tersebut bukan dari panjang yang sama. Baca dari baris 1 (darri kiri ke kanan) sampai selesai kemudian baru dilanjutkan baris dua dan seterusnya. maka tes diperlukan untuk memeriksa digit tambahan yang perlu menyortir.43A87006100112 . Dimana data relah terurut dengan metode radix sort. dan ini adalah salah satu yang paling sulit untuk membuat efisien. Hal ini dapat menjadi salah satu bagian paling lambat Radix Sort. Kecepatan Radix Sort sebagian besar bergantung pada operasi dasar. Yang merupakan hasil akhir dari metode pengurutan ini. seperti dalam hal mengurutkan bilangan bulat dan negatif. By: Mujan .

Anda mungkin akan membutuhkan lebih dari 40 sublists.43A87006100112 . dan jika urutan perubahan penyortiran.. Radix Sortir perlu ditulis ulang. negatif dan decimal data yang mau diurutkan) maka radix sort masih kurang efisien. angka atau huruf. Radix Sort tergantung pada angka atau huruf. Kita harus memiliki subdaftar untuk masing-masing mungkin digit atau huruf. Anda akan memerlukan paling sedikit 26 sublists berbeda. Radix Sort juga lebih kurang fleksibel dibandingkan jenis lainnya. By: Mujan . Singkatnya.Radix Sort juga dapat mengambil ruang lebih dari algoritma pengurutan lain. karena di samping array yang akan diurutkan. dan jika Anda mengurutkan katakata alfanumerik atau kalimat. yang dapat menangani semua jenis data. Jika Anda mengurutkan kata-kata bahasa Inggris murni. menyortir perlu ditulis ulang lagi. Radix Sort membutuhkan lebih banyak waktu untuk menulis dan sangat sulit untuk menulis tujuan umum Radix Sort. Untuk setiap jenis data yang berbeda. Dengan kompleksitas yang beragam (panjang data.

Sign up to vote on this title
UsefulNot useful