Distribution Sort Asli Kelompok 6

23
DISTRIBUTION SORT KELOMPOK 6 1. AHMADAN BAIHAQI SAMBORO 2. ANNISA DIAN ISLAMI 3. BILLY ANUGRAH 4. BINAR TAMARA PUTRI 5. GERALDY WIBIANSYAH PUTRA 6. RAFIKA DHIAN KANITA 7. FERINA YULI PUTRI

description

Alprog

Transcript of Distribution Sort Asli Kelompok 6

Page 1: Distribution Sort Asli Kelompok 6

DISTRIBUTION SORT

KELOMPOK 6

1. AHMADAN BAIHAQI SAMBORO

2. ANNISA DIAN ISLAMI

3. BILLY ANUGRAH

4. BINAR TAMARA PUTRI

5. GERALDY WIBIANSYAH PUTRA

6. RAFIKA DHIAN KANITA

7. FERINA YULI PUTRI

Page 2: Distribution Sort Asli Kelompok 6

Definisi Distribution Sort Semacam Distribusi mengacu pada setiap algoritma

pengurutan dimana data didistribusikan dari masukan

mereka ke beberapa struktur perantara yang

kemudian dikumpulkan dan ditempatkan pada

output. Distribusi algoritma pengurutan dapat

digunakan pada prosesor tunggal, atau mereka

dapat menjadi algoritma terdistribusi, di mana subset

individu secara terpisah diurutkan pada prosesor

yang berbeda, kemudian digabungkan.

Page 3: Distribution Sort Asli Kelompok 6

Distribution sort

Ada beberapa macam dari distribution sort, yaitu :

American flag sort

Bead sort

Bucket sort

Burstsort

Counting sort

Pigeonhole sort

Proxmap sort

Radix sort

Flashsort

Page 4: Distribution Sort Asli Kelompok 6

Adapun, bahasan utamanya

adalah :

Counting sort

Bucket sort

Radix sort

Page 5: Distribution Sort Asli Kelompok 6

A.COUNTING SORT

Counting sort merupakan algoritma pengurutan

yang dapat dilakukan apabila data dapat

dinyatakan sebagai bilangan yang menyatakan

besarannya.

Rentang nilai bilangan itu juga tidak boleh terlalu

besar, karena akan dibuat array yang besarnya

sama dengan rentangnya. Biasanya counting

sort hanya digunakan untuk mengurutkan

angka.

Page 6: Distribution Sort Asli Kelompok 6

Keunggulan Algoritma Counting Sort

Keunggulan dari algoritma counting sort

adalah dapat mengurutkan dengan waktu

yang lebih singkat, karena tidak

membandingkan dengan elemen lain.

Kelemahan Algoritma Counting Sort

Kelemahan algoritma counting sort adalah

menggunakan array yang terlalu banyak.

Page 7: Distribution Sort Asli Kelompok 6

Ide Dasar Counting Sort

Untuk dapat melakukan pengurutan

dengan counting sort rentang nilai untuk

kumpulan data yang akan diurutkan harus

diketahui, katakanlah k.

Ide dasar dari counting sort adalah

menentukan, untuk setiap elemen x, jumlah

elemen yang lebih kecil daripada x, yang

kemudian informasi ini digunakan untuk

menentukan posisi x.

Page 8: Distribution Sort Asli Kelompok 6

Contoh sederhana saja, jika terdapat

12 elemen yang lebih kecil daripada x,

maka x akan mendapatkan posisinya di

posisi 13.

Tentu saja, sedikit modifikasi harus

dilakukan agar metode ini dapat

menangani kasus di mana terdapat

elemen-elemen lain yang nilainya sama

dengan x.

Di mana tentu saja kita tidak dapat

menempatkan semua elemen yang nilainya

sama dengan x di posisi yangsama.

Page 9: Distribution Sort Asli Kelompok 6

Algoritma Counting Sort

Misalkan terdapat N bilangan, yaitu a1, a2, ...,

aN. Setiap bilangan itu berada di antara 1

sampai K. Cara pengurutannya adalah:

Buat tabel frekuensi yang besarnya K,

misalnya tabel direpresentasikan sebagai

array F.

Untuk setiap ai, tambahkan F[ai] dengan 1.

Lakukan iterasi pada array F. Untuk setiap i,

yang mana 1 ≤ i ≤ K, cetak i sebanyak F[i] kali.

Page 10: Distribution Sort Asli Kelompok 6

Perhatikan contoh berikut! Misalkan K = 10

dan bilangan yang ingin diurutkan adalah

1, 4, 2, 3, 4, 8, 4, 5, 1, 5, 1, 5, 3, 2

Nilai (i) Frekuensi (F[i])

1 3

2 2

3 2

4 3

5 3

6 0

7 0

8 1

9 0

10 0

Setelah bilangan-bilangan itu dihitung frekuensinya, tabel frekuensinya adalah:

Page 11: Distribution Sort Asli Kelompok 6

Lalu iterasi mulai dari i = 1 sampai i = 10,

untuk setiap i, cetak i sebanyak F[i] kali.

Hasilnya adalah:

1, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 8

Page 12: Distribution Sort Asli Kelompok 6

Pseudecodenya adalah : sort(data[], N, K)

// buat array F yang ukurannya bisa menampung sampai dengan elemen K, isi nilai awal elemennya dengan 0

for i <- 1 .. N

tambahkan F[data[i]] dengan 1

// buat array temp sebagai penampungan sementara

p <- 1

for i <- 1 .. K

for j <- 1 .. F[i]

Temp[p] <- i

p <- p + 1

// salin temp ke data

for i <- 1 .. N

data[i] = temp[i]

Page 13: Distribution Sort Asli Kelompok 6

B. Bucket Sort Bucket Sort adalah algoritma pengurutan yang mengelompokan deret angka menjadi beberapa deret yang kemudian dianalogikan menjadi ember.

Setiap angka dalam deret yang akan diurutkan diambil satu persatu dan dimasukan ke ember yang memenuhi syarat.

Embernya sudah harus urut dari mulai ember yang terkecil. Setelah itu, angka-angka diurutkan dalam masing-masing ember yang paling kecil terebuh dahulu.

Page 14: Distribution Sort Asli Kelompok 6

Berikut ini analoginya

Page 15: Distribution Sort Asli Kelompok 6

Pseudocodenya :

(Assume all numbers in the range 0 to M - 1 Create a d dimensional array of lists (or arrays) y

for i = 0 to n - 1 do

Append x[i] to y[x[i]=(M=d)]

end for

Replace x by y[id] for i = 0 to p - 1 do

if i == id then

Transmit y[i] to processor i

Receive data from processor i and append to x end if end for

Perform a local sort on x

Page 16: Distribution Sort Asli Kelompok 6

C. RADIX SORT Definisi :

Radix Sort merupakan salah satu algoritma Non-Comparasion Sort (pengurutan tanpa pembandingan).

Proses yang dilakukan dalam metode ini adalah mengklasifikasikan/menyelesaikan data sesuai dengan kategori terurut yang tertentu, dan tiap kategori dilakukan pengklasifikasian lagi, dan seterusnya sesuai kebutuhan, kemudian subkategori-subkategori atau bagian-bagian dari kategori tersebut digabungkan kembali.

Page 17: Distribution Sort Asli Kelompok 6

Sebelum memulai membahas lebih lanjut, akan lebih baik jika diadakan penyamaan persepsi mengenai istilah radix, dalam makalah ini radix bermakna harafiah posisi dalam angka [1]. Di mana sederhananya, dalam representasi desimal, radix adalah digitnya.

Ide dasar dari metode Radix sort ini adalah mengkategorikan data-data menjadi subkumpulan subkumpulan data sesuai dengan nilai radix-nya, mengkonkatenasinya, kemudian mengkategorikannya kembali berdasar nilai radix lainnya.

Page 18: Distribution Sort Asli Kelompok 6

SIMULATION

173 256 548 326 753 478 222 144 721 875

0 1 2 3 4 5 6 7 8 9

173

753

256

326

548

478

222 144 721 875

18

SIMULASI

Page 19: Distribution Sort Asli Kelompok 6

SIMULATION

0 1 2 3 4 6 7 8 9

173

753

256

326

548

478

222 144 721 875

0 1 2 3 4 5 6 7 8 9

173 753

256

326

548

478

222

144 721

875

19

Page 20: Distribution Sort Asli Kelompok 6

SIMULATION

0 1 2 3 4 5 6 7 8 9

173 753 256

326 548 478 222 144 721 875

0 1 2 3 4 5 6 7 8 9

173 753

256

326

548

478

222

144 721

875

20

Page 21: Distribution Sort Asli Kelompok 6

SIMULATION

0 1 2 3 4 5 6 7 8 9

173 753 256

326 548 478 222 144 721 875

144 173 222 256 326 478 548 721 753 875

21

Page 22: Distribution Sort Asli Kelompok 6

ALGORITHM

1.Keep an array count of size m(Maximum range of output)

2.Repeat following steps till input is exhausted

a) Read input number as x.

b) Increment count [x] by 1

3.Repeat the following for i=0 to m

a) Assign j to zero

b) While count [ i ] is not equal to zero do

i) a[ j ] = I and increment j

ii) Decrement count[ i ]

4.Return the sorted elements stored in array a.

Page 23: Distribution Sort Asli Kelompok 6

TERIMAKASIH