Quick Sort
Quick Sort
algoritma yang meletakkan elemen-elemen suatu kumpulan data dalam urutan tertentu. Atau proses pengurutan data yg sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu.
Yang pada kenyataannya urutan tertentu yang umum urutan tertentu digunakan adalah secara terurut secara numerikal ataupun secara leksikografi (urutan secara abjad sesuai kamus). Ada jenis Ad 2 j i sorting : A i Ascending ( ik) & D di (naik) Descending di (turun)
Selection Sort mencari elemen yang tepat untuk diletakkan di i l t t t k dil t kk posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan.
Contohnya :Selection sort, Heapsort, Smoothsort, Strand sort
Insertion Sort mencari tempat yang tepat untuk suatu elemen data yang telah diketahui ke dalam subkumpulan data yang telah terurut, kemudian melakukan penyisipan (insertion) data di tempat yang tepat tersebut tersebut.
Contohnya adalah : Insertion sor, Shell sort, Tree sort, Library sort, Patience sorting.
Merge Sort data dibagi d t dib i menjadi subkumpulan-subkumpulan yang k j di bk l bk l kemudian di subkumpulan tersebut diurutkan secara terpisah, dan kemudian digabungkan kembali dengan metode merging. algoritma ini melakukan metode pengurutan merge sort juga untuk mengurutkan subkumpulandata tersebut, atau dengan k k bk l d b d kata lain, l i pengurutan dilakukan secara rekursif.
Contohnya adalah : Merge sort.
Non-Comparison Sort proses pengurutan data yang dilakukan algoritma ini tidak terdapat pembandingan antardata, data diurutkan sesuai dengan pigeon hole principle.
Contohnya adalah : Radix sort, Bucket sort, Counting sort, Pigeonhole sort Tally sort sort, sort.
METODE SORTING
1. RADIX SORT
Ide Dasar
Ide dasar dari metode Radix sort ini adalah mengkategorikan data-data menjadi sub kumpulan subkumpulan data sesuai dengan nilai radix-nya, mengkonkatenasinya, kemudian k k t i k di mengkategorikannya kembali berdasar nilai radix lainnya. lainnya
implementasi pada bilangan bulat positif menggunakan salah satu algoritma pengurutan radix sort. di t Contohnya adalah pengurutan sebuah kumpulan data bilangan bulat dengan jumlah digit maksimal 3
Hasil pengkategorian tersebut lalu digabung kembali dengan metode konkatenasi menjadi :
Kemudian pengkategorian dilakukan kembali,namun kali ini berdasar digit kedua atau digit tengah, dan jangan lupa bahwa urutan pada tiap subkumpulan data harus sesuai dengan urutan kemunculan pada kumpulan data
Kemudian langkah ketiga, atau langkah terakhir g g , g pada contoh ini adalah pengkategorian kembali berdasar digit yang terkiri, atau yang paling signifikan i ifik
Yang merupakan hasil akhir dari metode pengurutan ini. Di mana data telah terurut dengan metode radix sort.
Procedure RadixSort (A : TArray; var B : TArray; d : byte); var KatRadix : array [0..9] of Queue; i, i x, ctr : i t t integer; pembagi : longword; begin {--- mengkopi A ke B ---} for i:=1 to n do B[i] := A[i]; pembagi := 1; for x:=1 to d do begin {--- inisialisasi KatRadix } { i i i li i K R di ---} for i:=0 to 9 do InitQueue (KatRadix[i]); {--- dikategorikan ---} for i:=1 to n do i: 1 Enqueue (KatRadix [(B[i] div pembagi) mod 10], B[i]); B[i] := 0; {--- dikonkat ---} ctr := 0; for i:=0 to 9 do begin while (NOT IsQueueEmpty (KatRadix[i])) do begin ctr := ctr + 1; B[ctr]:=DeQueue (KatRadix [i]); end; end; pembagi := pembagi * 10; end; end;
METODE SORTING
2. BUBLE SORT
kedua,dilakukan pertukaran. kedua dilakukan pertukaran o Langkah 2 dan 3 dilakukan lagi terhadap elemen kedua dan ketiga, seterusnya sampai ke ujung g , y p j g elemen o Bila sudah sampai ke ujung dilakukan lagi ke awal sampai tidak ada terjadi lagi pertukaran elemen. i tid k d t j di l i t k l o Bila tidak ada pertukaran elemen lagi, maka list elemen sudah terurut.
Pada iterasi ke-i, pemeriksaan tsb. dilakukan pula dalam loop-for sbb. bb
deskripsi adatukar true I 1 While (I<n) and (adatukar) do J 1 Adatukar false While j <= (n-I) do < (n I) If x[j] > x[j+1] then Adatukar true temp x[j] X[j] [j] x[j+1] [j ] x[j+1] temp endif j j+1 endwhile i i+1 endwhile
Loop-for tersebut akan menggeser b p b gg bilangan g terkecil ke posisi i. Loop-for dilakukan hanya sampai ke i karena pada iterasi ke-i data dalam x[0], x[1], ..., x[I 1] merupakan yang paling kecil dan sudah terurut hasil h il pengeseran yang dil k k setiap l dilakukan ti loop sebelumnya. Oleh sebab itu iterasi hanya dilakukan untuk harga i=0, 1, ..., n-2 atau sampai tidak terjadi penukaran dalam suatu iterasi.
Pada proses kedua, pengecekan dilakukan sampai dengan data k id d t ke-2 k karena data pertama d t t pasti sudah paling kecil.
Keuntungan lain dari algoritma ini adalah dapat dijalankan dengan g g p j g cukup cepat dan efisien untuk mengurutkan list yang urutannya sudah k d f k k l d h hampir benar. Selain kasus terbaik tersebut, komleksitas untuk algoritma ini adalah O(n). Karenanya algoritma ini termasuk sangat tidak efisien untuk dilakukan, apalagi jika pengurutan dilakukan terhadap elemen yang banyak jumlahnya. Biasanya bubble sort digunakan untuk mengenalkan konsep dari sorting algoritma pada pendidikan komputer karena idenya yang cukup sederhana.
METODE SORTING
3. SELECTION SORT
PENDAHULUAN
Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan . Selection sort merupakan metode pengurutan yang mencari nilai data terbesar atau terkecil dan kemudian menempatkannya pada posisi yang sebenarnya, dimulai dari data diposisi 0 hingga data diposisi N-1. Sedangkan metode insertion sort adalah metode pengurutan yang biasa dipakai oleh pemain kartu dalam mengurutkan kartunya, yaitu menyisipkan kartu dengan kartunya nilai yang lebih kecil ke posisi sebelum kartu pembandingnya.
Selection Sort merupakan kombinasi antara sorting dan searching. searching Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array array. Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]) pada putaran kedua akan dicari data (data[0]), kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]). Selama proses pembandingan dan pengubahan hanya proses, dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.
Tehnik pengurutan dgn cara pemilihan elemen atau proses kerja dgn memilih elemen data terkecil utk kemudian e ja dg e ee e te ec ut e ud a dibandingkan ditukarkan dgn l dib di k & di k k d elemen pd d d data awal, d l dst s/d seluruh elemen shg akan menghasilkan pola data yg telah disort.
Kelebihan dan kekurangan Selection Sort: g
Kompleksitas selection sort relatif lebih kecil. Mudah menggabungkannya kembali, tetapi sulit membagi masalah. Membutuhkan method tambahan.
Kondisi awal:
Unsorted list = data Sorted list = kosong
Ambil yang terbaik (select) dari unsorted list, tambahkan di belakang sorted list. Lakukan terus sampai unsorted li t h bi L k k t i t d list habis.
40
43
-1 1
58
42 65
40
43
-1 1
42
58 65
40
-1
42 43 58 65
-1
40 42 43 58 65
-1
40 42 43 58 65
-1
40 42 43 58 65
METODE SORTING
4. INSERTION SORT
Insertion Sort
Prinsip dasar Insertion adalah secara berulangulang menyisipkan / memasukan setiap elemen. k l i i k k ti l ke dlm posisinya / tempatnya yg benar. Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke 2 sampai dengan ke-2 data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. P d penyisipan elemen, maka h Pada i i l k elemen-elemen lain akan bergeser ke belakang
Insertion Sort
Kondisi awal:
Unsorted list = data Sorted list = kosong
Ambil sembarang elemen dari unsorted list, sisipkan (insert) pada posisi yang benar dalam sorted list. Lakukan t L k k terus sampai unsorted list h bi i t d li t habis. Bayangkan anda mengurutkan kartu.
40
43
65
-1
58
42
40
43
65
-1
58
42
40 43
65
-1
58
42
40 43
65
-1
58
42
40 43 65
-1
58
42
40 43 65
-1
58
42
40 43 65
-1
58
42
40 43 65 -1
58
42
-1 0
0 1
1 2
2 3
40 43 65 65 58 3 40 43
42
-1 0
0 1
1 2
2 3
40 43 65 58 65 65 42 3 3 43 43 58 40
-1 0
0 1
1 2
2 3
40 43 65 42 65 58 65 3 3 43 40 43
-1 0
0 1
1 2
2 3
40 43 65 42 65 58 65 65 3 3 43 40 43 43 58 4 42
METODE SORTING
5. QUICK SORT
METODE SORTING
6. HEAP SORT
HEAP REPRESENTATION
Array
HEAP SORT
Metode Upheap:
bandingkan kunci terakhir dengan parentnya apabila parent < kunci maka lakukan pertukaran. ulangi langkah 1 dengan membandingkan dengan parent selanjutnya g g g b g g p j y sampai posisi parent di level 1 selesai dibandingkan
Metode Downheap: M d D h
bandingkan parent dengan leftchild dan rightchild apabila parent < leftchild atau rightchild maka lakukan pertukaran. ulangi langkah 1 dengan membandingkan dengan leftchild dan rightchild pada posisi level dibawahnya sampai posisi di level terakhir selesai dibandingkan.
DAFTAR PUSTAKA
DF Alfatwa, ER Syah P, FM Ahsan, Implementasi Algoritma Radix Sort dalam Berbagai Kasus Bilangan Dibandingkan Algoritma Pengurutan yang lain. Bandung 2005. lain Bandung. 2005 Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Introduction To Algorithms, McGraw- Hill. 1990. Handbook U , Algoritma-algoritma pe gu u a internal a dboo UI, go a a go a pengurutan e a http://ranau.cs.ui.ac.id/sda/archive/1998/handout/handout24.h tml Tanggal akses : 29 Desember 2007 pukul 04.00 GMT +7 Wikipedia, (2007). Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/Counting_Sort http://en wikipedia org/wiki/Counting Sort Tanggal akses : 29 Desember 2007 pukul 04.00 GMT +7 Wikipedia, (2007). Wikipedia, the free encyclopedia. p // p g/ / g g gg http://en.wikipedia.org/wiki/Sorting_Algorithm Tanggal akses : 29 Desember 2007 pukul 04.00 GMT +7 Wikipedia, (2007). Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/Radix_Sort Tanggal akses : 29 Desember 2007 pukul 04.00 GMT +7 04 00