quick sort

download quick sort

of 46

  • date post

    30-Jun-2015
  • Category

    Documents

  • view

    1.049
  • download

    5

Embed Size (px)

Transcript of quick sort

SORTING

Pengertian Algoritma Pengurutan (sorting)

Dalam ilmu komputer, algoritma pengurutan adalah

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)

Klasifikasi AlgoritmaPengurutan (sorting)Exchange Sort melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai.Contohnya : Bubble sort, Cocktail sort, Comb sort, Gnome sort, Quicksort.

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 SORTING1. RADIX SORT

Ide DasarIde 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 Radix Sort Contoh implementasi y g akan dilakukan adalah p yang

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

Pertama kali, data dibagi-bagi sesuai dengan digit terkanan :

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

Yang kemudian dikonkatenasi kembali menjadi

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 kemudian dikonkatenasi lagi menjadi

Yang merupakan hasil akhir dari metode pengurutan ini. Di mana data telah terurut dengan metode radix sort.

Algoritma dan Kompleksitas Waktu Radix SortImplementasi dari algoritma tersebut dibuat p g menggunakan bahasa Pascal, yang direalisasikan dengan menggunakan queue sebagai representasi tiap kategori radix untuk pengkategorian. ti k t i di t k k t i Array A adalah array input, dan array B adalah array A yang sudah terurut terurut.

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 SORTING2. BUBLE SORT

Ide Bubble Sorto Algoritma dimulai dari elemen paling awal. o 2 buah elemen pertama dari list dibandingkan. o Jika elemen pertama lebih besar dari elemen

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.

Algoritma Bubble SortSetiap pasangan data: x[j] dengan x[j-1], untuk semua i=1,...,n-1 harus memenuhi keterurutan, yaitu x[j] > x[j-1]. Apabila tidak memenuhi maka posisi kedua data bl d k h k k d d harus ditukar. Untuk U t k pemrograman k konvensional maka i l k pemeriksaan-pemeriksaan pasangan tersebut harus dilakukan satu demi satu, misalnya oleh bubble-sort dilakukan dari kanan ke kiri serta di dalam sejumlah iterasi.

Pada iterasi ke-i, pemeriksaan tsb. dilakukan pula dalam loop-for sbb. bbdeskripsi adatukar true I 1 While (I p parent penambahan kunci diletakkan pada posisi terakhir dari level dan disebelah kanan child yg terakhir, kemudian diurutkan dengan cara upheap Bila menghapus heap dgn mengambil kunci pada parent di level 1 kemudian digantikan posisi kunci terakhir, selanjutnya disort kembali metode downheap

HEAP REPRESENTATION

Array

Left_child(i) Left child(i) = 2i Right_chilrd = 2i +1 Parent = j div 2

HEAP SORTMetode 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 hbandingkan 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 PUSTAKADF 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