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

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

i. Snapshot Berdasar dari soal di atas untuk mengurutkan 200 data maka saya ambil sebuah kumpulan data bilangan bulat dengan jumlah digit 3. d : byte). end. {--.dikonkat ---} ctr := 0. for i:=0 to 9 do begin while (NOT IsQueueEmpty (KatRadix[i])) do begin ctr := ctr + 1. end.43A87006100112 . pembagi : longword.Procedure RadixSort (A : TArray. {--.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 .mengkopi A ke B ---} for i:=1 to n do B[i] := A[i]. end. 1 Baca kiri.dikategorikan ---} for i:=1 to n do i: Enqueue (KatRadix [(B[i] div pembagi) mod 10]. pembagi := 1. B[i] := 0. ctr : integer. pembagi := pembagi * 10. B[i]). for x:=1 to d do begin {--. var B : TArray. x. var KatRadix : array [0. B[ctr]:=DeQueue (KatRadix [i])..inisialisasi KatRadix ---} for i:=0 to 9 do InitQueue (KatRadix[i]).9] of Queue. end. begin {--.

Lalu dilanjutkan baris kedua.43A87006100112 . 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 . (lihat angka paling kanan.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.1) 234 warna merah jambu merupakan urutan proses pertama di tabel 2. Pertama kali. cel(1. ketiga dst. data dibagi-bagi sesuai dengan digit terkanan: Warna menunjukkan urutan proses dari setiap pindah baris (1-20). Dilanjutkan sampai kolom ke 10. misal isi Tabel 1. Yang ke dua 235 masukkan ke kolom dengan no 5. Angka 234 di tahap ini dimasukkan ke kolom dengan no 4.

namun kali ini berdasar digit kedua atau digit tengah. ….…981.43A87006100112 .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. kemudian kolom 2 dan seterusnya Kemudian pengkategorian dilakukan kembali. 890.. Baca dari kolom 0 kebawah. 141.…050. dan jangan lupa bahwa urutan pada tiap sub kumpulan data harus sesuai dengan urutan kemunculan pada kumpulan data. 221. 980. 321. kemudian dilanjutkan kolom 1 kebawah. 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 .

113...112.002.818 …… dst By: Mujan ..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.43A87006100112 .708 111.

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 .Baca dari kolom 0 dari atas ke bawah. kemudian kolom 2 dan seterusnya Kemudian langkah ketiga. atau yang paling signifikan. kemudian dilanjutkan kolom 1 dari atas ke bawah.

112…156 Baca dari kolom 0 ke bawah. Yang kemudian di konkatenasi lagi menjadi 002. 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 . kemudian kolom 2 dan seterusnya (Pengurutan dari kecil ke besar /Ascending).023.43A87006100112 .042..111. kemudian kolom 8 dari baris paling bawah keatas dan seterusnya sampai kolom 0. kemudian dilanjutkan kolom 1 kebawah.. Kalau sebaliknya (Descending) berarti di baca dari angka paling bawah di kolom 9 keatas.33 34 35 36 37 38 39 40 270 278 279 280 281 282 283 284 41 285 685 Tabel 4.098 101.

maka tes diperlukan untuk memeriksa digit tambahan yang perlu menyortir. Hal ini dapat menjadi salah satu bagian paling lambat Radix Sort. Yang merupakan hasil akhir dari metode pengurutan ini. Radix Sort dapat lebih lambat dibandingkan dengan beberapa algoritma lain seperti Quick Sort dan Merge Sort. seperti dalam hal mengurutkan bilangan bulat dan negatif. By: Mujan . Operasi ini termasuk memasukkan dan menghapus fungsi sublists dan proses mengisolasi angka yang diinginkan. dan ini adalah salah satu yang paling sulit untuk membuat efisien.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. Analisis dan Kesimpulan Ada beberapa masalah untuk Radix Sort yang membuatnya kurang disukai dibandingkan jenis sorting lainnya.43A87006100112 . 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. dan jika operasi tidak cukup efisien. Dimana data relah terurut dengan metode radix sort. Kecepatan Radix Sort sebagian besar bergantung pada operasi dasar.

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

Sign up to vote on this title
UsefulNot useful