36
1 MODUL II MODUL II ALGORITMA & STRUKTUR DATA I ALGORITMA & STRUKTUR DATA I PENGURUTAN DATA (SORTING) PENGURUTAN DATA (SORTING) Oleh: Prima Rosa Oleh: Prima Rosa ([email protected]) ([email protected]) Jurusan Teknik Informatika Jurusan Teknik Informatika Universitas Sanata Dharma Universitas Sanata Dharma Semester Gasal 2007/2008 Semester Gasal 2007/2008

Modul II ASD TI - Sorting

  • Upload
    tendy

  • View
    644

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modul II ASD TI - Sorting

11

MODUL II MODUL II ALGORITMA & STRUKTUR DATA IALGORITMA & STRUKTUR DATA IPENGURUTAN DATA (SORTING)PENGURUTAN DATA (SORTING)

Oleh: Prima Rosa Oleh: Prima Rosa

([email protected])([email protected])

Jurusan Teknik Informatika Jurusan Teknik Informatika

Universitas Sanata DharmaUniversitas Sanata Dharma

Semester Gasal 2007/2008Semester Gasal 2007/2008

Page 2: Modul II ASD TI - Sorting

22

Pengurutan Data (Sorting)Pengurutan Data (Sorting)

• Pengurutan (sorting) adalah proses pengurutan

sekumpulan data dalam suatu urutan tertentu (menaik/ascending atau menurun/descending)

• Sorting dipakai untuk:1. membantu proses pencarian (searching)2. Menyelesaikan masalah-masalah

kompleks seperti penjadwalan (scheduling), pengolahan basis data, riset operasi, dsb

• Metode pengurutan data:• Pengurutan data internal: data sedikit,

tersimpan dalam memori utama• Pengurutan data eksternal: data besar,

disimpan dalam memori tambahan

Page 3: Modul II ASD TI - Sorting

33

Pengurutan Data (Sorting)Pengurutan Data (Sorting)

• Proses sorting memuat 3 sub proses utama:1. Pemecahan larik data menjadi 2 bagian2. Pengurutan data pada masing-masing

bagian3. Penggabungan hasil pengurutan

masing2 bagian• Azmoodeh (1988:299) mengkategori

metode sorting menjadi 2:1. Easy Split/Hard Join (ES/HJ)2. Hard Split/Easy Join (HS/EJ)

Page 4: Modul II ASD TI - Sorting

44

Pengurutan Data (Sorting)Pengurutan Data (Sorting)

• Terdapat banyak algoritma pengurutan data

• Efisiensi setiap algoritma bervariasi • Beberapa contoh algoritma

pengurutan data: - Selection Sort (HS/EJ)- Bubble Sort (HS/EJ)- Insertion Sort (ES/HJ)- Quick Sort (HS/EJ)

- dll

Page 5: Modul II ASD TI - Sorting

55

Selection SortSelection Sort Pendekatan Selection Sort:Pendekatan Selection Sort:

Pilih satu nilai dan letakkan di tempat (indeks) Pilih satu nilai dan letakkan di tempat (indeks) terakhir dalam kumpulan dataterakhir dalam kumpulan data

Ulangi langkah di atas untuk setiap data dalam Ulangi langkah di atas untuk setiap data dalam kumpulan datakumpulan data

Langkah lebih rinci:Langkah lebih rinci: Cari nilai terkecil dalam daftarCari nilai terkecil dalam daftar Tukarkan data tersebut dengan data pada indeks Tukarkan data tersebut dengan data pada indeks

pertama pertama Cari nilai terkecil berikutnya dalam daftarCari nilai terkecil berikutnya dalam daftar Tukarkan data tersebut dengan data pada posisi Tukarkan data tersebut dengan data pada posisi

keduakedua Ulangi sampai seluruh data ditempatkan dengan Ulangi sampai seluruh data ditempatkan dengan

benarbenar

Page 6: Modul II ASD TI - Sorting

66

Contoh: Urutkan data berikut 61, 39, 32, 21, 2, 37Contoh: Urutkan data berikut 61, 39, 32, 21, 2, 37

Iterasi 1: 61 39 32 21 2 37

Iterasi 2: 2 39 32 21 61 37

Iterasi 3: 2 21 32 39 61 37

Iterasi 4: 2 21 32 39 61 37

Iterasi 5: 2 21 32 37 61 39

Hasil : 2 21 32 37 39 61

Page 7: Modul II ASD TI - Sorting

77

Method Selection SortMethod Selection Sortpublic void selectionSort(int[] data ) {

int i, indeksMin, jum, temp;jum = data.length;

for (i = 0; i<=jum-1; i++){//tiap iterasi dalam satu loop adalah satu langkahindeksMin = i;

//cari nilai terkecil & simpan posisi dalam indeksMinfor (int j = i+1; j < jum; j++) {

if (data[j] < data[indeksMin]) indeksMin = j;

}//tukarkan data[i] dengan data[indeksMin]temp = data[i];data[i] = data[indeksMin];data[indeksMin] = temp;

}}

Page 8: Modul II ASD TI - Sorting

88

Demo Selection SortDemo Selection Sortpublic class DemoSelectionSortDemo {

public static void main(String s[]) { DemoSelectionSort ss = new DemoSelectionSort (); ss.start();

}

public void start() { int dataKu[]={61, 25, 86, 11, 90, 5, 9, 50, 65, 27}; int indeks;

// tampilkan data mula-mula System.out.println(“Data mula-mula:"); print(dataKu);

selectionSort(dataKu);

// tampilkan hasil sorting System.out.println(“Data terurut:"); print(dataKu); }

Page 9: Modul II ASD TI - Sorting

99

Demo Selection SortDemo Selection Sort

>java DemoSelectionSort >java DemoSelectionSort Data mula-mula:Data mula-mula:61 25 86 11 90 5 9 50 65 2761 25 86 11 90 5 9 50 65 27Data terurut:Data terurut:5 9 11 25 27 50 61 65 86 905 9 11 25 27 50 61 65 86 90

public void print( int[] data ) { int i; for (i=0; i<data.length; i++) System.out.print(data[i] + " "); System.out.println(); }

public void selectionSort( int[] data ) { // same as before // .... }

}

Page 10: Modul II ASD TI - Sorting

1010

Bubble SortBubble Sort Dengan selection sort, kita membuat Dengan selection sort, kita membuat

satu penukaran pada akhir setiap iterasisatu penukaran pada akhir setiap iterasi Bubble sort meningkatkan kinerja Bubble sort meningkatkan kinerja

pengurutan dengan membuat lebih dari pengurutan dengan membuat lebih dari satu penukaran dalam setiap iterasisatu penukaran dalam setiap iterasi

Ide dasar di balik bubble sort adalah Ide dasar di balik bubble sort adalah membuat sepasang perbandingan dan membuat sepasang perbandingan dan menukarkan posisi dari pasangan data menukarkan posisi dari pasangan data tersebut jika mereka belum urut.tersebut jika mereka belum urut.

Page 11: Modul II ASD TI - Sorting

1111

Bubble SortBubble Sort• Urutkan 35, 17, 32, 61, 2, 37 menggunakan Bubble Sort.

Lgkh 1: 35 17 32 61 2 37swap

Lgkh 2: 17 35 32 61 2 37swap

Lgkh 3: 17 32 35 61 2 37 ok

Lgkh 4: 17 32 35 61 2 37swap

Lgkh 5: 17 32 35 2 61 37swap

Iterasi 1: 17 32 35 2 3761

Page 12: Modul II ASD TI - Sorting

1212

Bubble SortBubble Sort• Lanjutkan iterasi hingga seluruh data terurut

Iterasi 1: 17 32 35 2 3761

Iterasi 2: 17 32 2 35 3761

Iterasi 3: 17 2 32 35 3761

Iterasi 5: 2 17 32 35 37 61

Iterasi 4: 2 17 32 35 3761

Page 13: Modul II ASD TI - Sorting

1313

Program Bubble SortProgram Bubble Sort

>java DemoBubbleSort

Data mula-mula:

61 25 86 11 90 5 9 50 65 27

Data terurut:

5 9 11 25 27 50 61 65 86 90

• Sama dengan contoh Selection Sort Main program hampir sama

Page 14: Modul II ASD TI - Sorting

1414

public class DemoBubbleSort {

public static void main(String s[]) { DemoBubbleSort ss = new DemoBubbleSort (); ss.start();

}

public void start() { int dataKu[] = {61, 25, 86, 11, 90, 5, 9, 50, 65, 27}; int index;

// tampilkan data mula-mula System.out.println(“Data mula-mula:"); print(dataKu);

bubbleSort(dataKu);

// tampilkan data terurut System.out.println(“Data terurut:"); print(dataKu); }

public void print( int[] data ) { int i; for (i=0; i<data.length; i++) System.out.print(data[i] + " "); System.out.println(); }

Page 15: Modul II ASD TI - Sorting

1515

public void bubbleSort( int array2[] ) { // loop untuk mengontrol jumlah iterasi for ( int iter = 1; iter < array2.length; iter++ ) {

// loop untuk mengontrol jumlah perbandingan for ( int idx = 0; idx < array2.length - 1; idx++ ) {

if ( array2[ idx ] > array2[ idx + 1 ] ) swap( array2, idx, idx + 1 );

} } }

// tukar kedua elemen dalam array public void swap( int array3[], int pertama, int kedua ) { int temp; // variabel temporer

temp = array3[pertama]; array3[pertama] = array3[kedua]; array3[kedua] = temp; }}

Page 16: Modul II ASD TI - Sorting

1616

Insertion SortInsertion Sort

Insertion sort (pengurutan sisip) adalah Insertion sort (pengurutan sisip) adalah metode pengurutan dengan cara metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang menyisipkan elemen larik pada posisi yang tepat. tepat.

Pencarian posisi yang tepat dilakukan Pencarian posisi yang tepat dilakukan dengan melakukan dengan melakukan pencarian beruntunpencarian beruntun di dalam larik. di dalam larik.

Selama pencarian posisi yang tepat, Selama pencarian posisi yang tepat, dilakukan pergeseran elemen larik.dilakukan pergeseran elemen larik.

Page 17: Modul II ASD TI - Sorting

1717

Insertion SortInsertion Sort Misalkan elemen larik akan diurut Misalkan elemen larik akan diurut menaikmenaik.. Asumsi :Asumsi : L[0] dianggap sudah pada tempatnyaL[0] dianggap sudah pada tempatnya Langkah 1:Langkah 1:

L[1] harus dicari tempatnya yang tepat pada L[0…1] dengan cara L[1] harus dicari tempatnya yang tepat pada L[0…1] dengan cara menggeser elemen L[0..0] ke kanan bila L[0..0] lebih besar dari menggeser elemen L[0..0] ke kanan bila L[0..0] lebih besar dari L[1]. L[1].

Langkah 2:Langkah 2: L[2] harus dicari tempatnya yang tepat pada L[0..2] dengan cara L[2] harus dicari tempatnya yang tepat pada L[0..2] dengan cara

menggeser elemen L[0..1] ke kanan bila L[0..1] lebih besar menggeser elemen L[0..1] ke kanan bila L[0..1] lebih besar daripada L[2]. Misalkan posisi yang tepat adalah K. Sisipkan L[2] daripada L[2]. Misalkan posisi yang tepat adalah K. Sisipkan L[2] pada L[K].pada L[K].

Langkah 3:Langkah 3: L[3] harus dicari tempatnya yang tepat pada L[0..3] dengan L[3] harus dicari tempatnya yang tepat pada L[0..3] dengan

cara menggeser elemen L[0..2] ke kanan bila L[0..2] lebih besar cara menggeser elemen L[0..2] ke kanan bila L[0..2] lebih besar daripada L[3]. Misalkan posisi yang tepat adalah K. Sisipkan L[3] daripada L[3]. Misalkan posisi yang tepat adalah K. Sisipkan L[3] pada L[K].pada L[K].

……………….. Langkah N-1:Langkah N-1:

L[N-1] harus dicari tempatnya yang tepat pada L[1..N-1] L[N-1] harus dicari tempatnya yang tepat pada L[1..N-1] dengan cara menggeser elemen L[0..N-2] ke kanan bila L[0..N-2] dengan cara menggeser elemen L[0..N-2] ke kanan bila L[0..N-2] lebih besar daripada L[N-1]. Misalkan posisi yang tepat adalah K. lebih besar daripada L[N-1]. Misalkan posisi yang tepat adalah K. Sisipkan L[N-1] pada L[K].Sisipkan L[N-1] pada L[K].

Page 18: Modul II ASD TI - Sorting

1818

Contoh Insertion SortContoh Insertion Sort

Tinjau larik dengan N=6 buah elemen di bawah ini Tinjau larik dengan N=6 buah elemen di bawah ini yang belum terurut. Larik ini akan diurut menaik:yang belum terurut. Larik ini akan diurut menaik:

29 27 10 8 76 2129 27 10 8 76 21 Iterasi ke 0: Elemen L[0] dianggap sudah terurut.Iterasi ke 0: Elemen L[0] dianggap sudah terurut.

2929 27 10 8 76 21 27 10 8 76 21 Iterasi ke 1: Cari posisi yang tepat untuk L[1] pada Iterasi ke 1: Cari posisi yang tepat untuk L[1] pada

L[0..1] L[0..1]

27 29 27 29 10 8 76 2110 8 76 21 Iterasi ke 2: Cari posisi yang tepat untuk L[2] pada Iterasi ke 2: Cari posisi yang tepat untuk L[2] pada

L[0..2] L[0..2]

10 27 2910 27 29 8 76 21 8 76 21

Page 19: Modul II ASD TI - Sorting

1919

Contoh Insertion SortContoh Insertion Sort Iterasi ke 3: Cari posisi yang tepat untuk Iterasi ke 3: Cari posisi yang tepat untuk

L[3] pada L[0..3] L[3] pada L[0..3]

88 10 27 2910 27 29 76 21 76 21 Iterasi ke 4: Cari posisi yang tepat untuk Iterasi ke 4: Cari posisi yang tepat untuk

L[4] pada L[0..4] L[4] pada L[0..4]

8 10 27 29 768 10 27 29 76 21 21 Iterasi ke 5: Cari posisi yang tepat untuk Iterasi ke 5: Cari posisi yang tepat untuk

L[5] pada L[0..5] L[5] pada L[0..5]

8 10 21 27 29 768 10 21 27 29 76

Data sudah terurut

Page 20: Modul II ASD TI - Sorting

2020

Insertion SortInsertion Sortvoid insertionSort(int data[])void insertionSort(int data[]) {{ int temp;int temp; int j;int j; for (int i=1; i<data.length; i++)for (int i=1; i<data.length; i++) {{ temp = data[i];temp = data[i]; j=i-1;j=i-1; while (temp<=data[j] && j>=0)while (temp<=data[j] && j>=0) {{ data[j+1]=data[j];data[j+1]=data[j]; j--;j--; }} data[j+1]= temp;data[j+1]= temp; }} }}

Page 21: Modul II ASD TI - Sorting

2121

Quick SortQuick Sort

• Quick Sort menggunakan prinsip divide and conquer• Misalkan kita punya data dalam larik S

Algoritma:1. Divide: Jika S memiliki minimal 2 elemen (bagaimana jika S

memiliki 0 atau 1 elemen??), pilih suatu elemen x dalam S, yang kita sebut sebagai pivot. Biasanya, yang dipilih sebagai pivot adalah elemen terakhir dalam S. Pindahkan semua elemen dalam S ke dalam 3 larik berikut

1) L, menyimpan semua elemen dalam S yang < x 2) E, menyimpan semua elemen dalam S yang = x 3) G, menyimpan semua elemen dalam S yang > x

Page 22: Modul II ASD TI - Sorting

2222

Quick SortQuick Sort

2.2. RecurRecur: Secara rekursif, urutkan larik L dan G : Secara rekursif, urutkan larik L dan G 3.3. ConquerConquer: Kembalikan elemen-elemen ke dalam S : Kembalikan elemen-elemen ke dalam S

secara terurut dengan terlebih dahulu menyisipkan secara terurut dengan terlebih dahulu menyisipkan elemen-elemen dalam L, kemudian E, dan diikuti G elemen-elemen dalam L, kemudian E, dan diikuti G

Contoh:Contoh: Terdapat larik (85, 24, 63, 45, 17, 31, 96, 50). Terdapat larik (85, 24, 63, 45, 17, 31, 96, 50).

Terlalu sulit mengurutkan data tersebut dalam satu Terlalu sulit mengurutkan data tersebut dalam satu langkahlangkah

Pilih 50 sebagai Pilih 50 sebagai pivotpivot dan bagi elemen-elemen ke dan bagi elemen-elemen ke dalam 3 larik: (24, 45, 17, 31), (50), and (85, 63, dalam 3 larik: (24, 45, 17, 31), (50), and (85, 63, 96). Problem disederhanakan menjadi mengurutkan 96). Problem disederhanakan menjadi mengurutkan 3 larik. Karena ukuran larik lebih kecil, diharapkan 3 larik. Karena ukuran larik lebih kecil, diharapkan proses pengurutan menjadi lebih mudah.proses pengurutan menjadi lebih mudah.

Page 23: Modul II ASD TI - Sorting

2323

Quick SortQuick Sort Sekarang kita ambil larik pertama (24, 45, 17, 31) dan Sekarang kita ambil larik pertama (24, 45, 17, 31) dan

tampak bahwa larik tsb masih terlalu kompleks untuk tampak bahwa larik tsb masih terlalu kompleks untuk diurutkan dalam 1 langkah. Maka kita pilih 31 sebagai diurutkan dalam 1 langkah. Maka kita pilih 31 sebagai pivot dan kita pecah larik ke dalam 3 larik lagi (24, pivot dan kita pecah larik ke dalam 3 larik lagi (24, 17), (31), dan (45). Sekarang 2 larik yaitu (31) dan 17), (31), dan (45). Sekarang 2 larik yaitu (31) dan (45) sangat mudah diurutkan (karena mereka (45) sangat mudah diurutkan (karena mereka masing2 hanya terdiri dari 1 elemen dan sudah urut masing2 hanya terdiri dari 1 elemen dan sudah urut dengan sendirinya) dengan sendirinya)

Larik (24, 17) masih kompleks. Maka kita pilih 17 Larik (24, 17) masih kompleks. Maka kita pilih 17 sebagai pivot dan kita pecah ke dalam 3 larik (), (17), sebagai pivot dan kita pecah ke dalam 3 larik (), (17), dan (24). Sekarang seluruh larik-larik kecil sudah dan (24). Sekarang seluruh larik-larik kecil sudah terurut.terurut.

Kita kumpulkan kembali larik-larik kecil tadi. Hasilnya Kita kumpulkan kembali larik-larik kecil tadi. Hasilnya adalah (17, 24). Kemudian kita kumpulkan larik (17, adalah (17, 24). Kemudian kita kumpulkan larik (17, 24), (31), dan (45) bersama. Hasilnya adalah (17, 24, 24), (31), dan (45) bersama. Hasilnya adalah (17, 24, 31, 45).31, 45).

Page 24: Modul II ASD TI - Sorting

2424

Quick SortQuick Sort

Dengan cara serupa, larik (85, 63, Dengan cara serupa, larik (85, 63, 96) diurutkan. Hasilnya adalah (63, 96) diurutkan. Hasilnya adalah (63, 85, 96).85, 96).

Selanjutnya kita kumpulkan larik (17, Selanjutnya kita kumpulkan larik (17, 24, 31, 45), (50) dan (63, 85, 96) 24, 31, 45), (50) dan (63, 85, 96) bersama sehingga mendapatkan bersama sehingga mendapatkan larik (17, 24, 31, 45, 50, 63, 85, 96).larik (17, 24, 31, 45, 50, 63, 85, 96).

Page 25: Modul II ASD TI - Sorting

2525

Quick SortQuick Sort

Gambar berikut menunjukkan bagaimana larik Gambar berikut menunjukkan bagaimana larik dipecah ke dalam larik-larik kecil dan pivotnya dipecah ke dalam larik-larik kecil dan pivotnya

6385 24 45 17 31 5096

638524 45 17 31 96

8524 634517

24 85

Page 26: Modul II ASD TI - Sorting

2626

Quick SortQuick Sort

Gambar berikut menunjukkan bagaimana Gambar berikut menunjukkan bagaimana larik-larik kecil digabungkan larik-larik kecil digabungkan

63 8524 4517 31 50 96

63 8524 4517 31 96

8524 634517

24 85

pivot 50

pivot 96

pivot 17 pivot 63

pivot 31

Page 27: Modul II ASD TI - Sorting

2727

Penukaran Elemen dalam Quick Penukaran Elemen dalam Quick SortSort

Problem: Problem: bagaimana cara mengatur elemen dalam larik?bagaimana cara mengatur elemen dalam larik?

Contoh:Contoh:

Gunakan 2 indeks, masing-masing mulai dari kiri Gunakan 2 indeks, masing-masing mulai dari kiri dan kanan. dan kanan.

Cari sepasang elemen di mana yang satu < pivot Cari sepasang elemen di mana yang satu < pivot dan yang lain > pivot. dan yang lain > pivot.

Tukar kedua elemen tersebutTukar kedua elemen tersebut Ulangi proses di atas sampai kedua indeks Ulangi proses di atas sampai kedua indeks

bertemu bertemu

638524 451731 50 96

63

r

24 45 17 31 509685

l

Page 28: Modul II ASD TI - Sorting

2828

Example:

63

r

24 45 17 31 509685

l

63

r

24 45 17 31 509685

l

63

r

24 45 1731 509685

l

Contoh:

Page 29: Modul II ASD TI - Sorting

2929

6 3

r

2 4 4 5 1 73 1 5 09 68 5

l

6 3

r

2 4 4 51 73 1 5 09 68 5

l

6 3

r

2 4 4 51 73 1 5 09 68 5

l

6 3

r

2 4 4 51 73 1 5 0 9 68 5

l

Page 30: Modul II ASD TI - Sorting

3030

Quick SortQuick Sortpublic void QuickSort(int data[]){ QuickSortStep(data,0, data.length-1);}public void QuickSortStep(int data[], int in_first, int in_last){ int i,j; int first, last; int temp; first = in_first; last = in_last;

if (first < last) { //bagian untuk mengatur pengurutan i = first + 1; j = last; while (data[i] <= data[first]) i++; while (data[j] > data[first]) j--;

Page 31: Modul II ASD TI - Sorting

3131

Quick SortQuick Sort

while (i<j) { temp=data[i]; data[i]= data[j]; data[j]=temp; while (data[i] <= data[first]) i++; while (data[j] > data[first]) j--; } temp=data[first]; data[first]=data[j]; data[j]=temp; QuickSortStep(data,first, j-1); QuickSortStep(data,j+1, last); }}

Page 32: Modul II ASD TI - Sorting

3232

Java implementation public static void quickSort( Sequence S, Comparator c ) { if( S.size() < 2 ) return; quickSortStep( S, c, 0, S.size() - 1 ); } private static void quickSortStep( Sequence S, Comparager c, int leftBound, int rightBound ) { if( leftBound >= rightBound ) return; Object pivot = S.atRank( rightBound ).element(); int leftIndex = leftBound; int rightIndex = rightBound - 1; while(( leftIndex <= rightIndex ) {

while(( leftIndex <= rightIndex ) && c.isLessThanorEqualTo( S.atRank( leftIndex ).element(), pivot )) leftIndex++;

Page 33: Modul II ASD TI - Sorting

3333

while((rightIndex >= leftIndex ) && c.isGreaterThanorEqualTo(

S.atRank( rightIndex ).element(), pivot )) rightIndex--; if( leftIndex < rightIndex ) S.swapElements( S.atRank( leftIndex ), S.atRank( rightIndex ));

} S.swapElements( S.atRank( leftIndex ), S.atRank( rightBound )); quickSortStep( S, c, leftBound, leftIndex - 1 ); quickSortStep( S, c, leftBound + 1, rightBound ); }

• Kompleksitas waktu quick sort adalah O(n2)

Page 34: Modul II ASD TI - Sorting

3434

PERBANDINGAN KINERJAPERBANDINGAN KINERJAALGORITMA SORTINGALGORITMA SORTING

ALGORITMA KOMPLEKSITAS WAKTU

Insertion Sort O(n2)

Bubble Sort O(n2)

Selection Sort O(n2)

Quick Sort O(n log n)

Untuk jumlah data yang sama, mana algoritma yg lebih cepat?

Page 35: Modul II ASD TI - Sorting

3535

PERBANDINGAN KINERJAPERBANDINGAN KINERJAALGORITMA SORTINGALGORITMA SORTING

Pertanyaan refleksi lanjutan:Pertanyaan refleksi lanjutan:1.1. Apakah ada perbedaan kinerja masing-Apakah ada perbedaan kinerja masing-

masing algoritma jika data ditemukan/tidak masing algoritma jika data ditemukan/tidak ditemukan?ditemukan?

2.2. Apakah ada perbedaan kinerja masing-Apakah ada perbedaan kinerja masing-masing algoritma jika data random, terurut masing algoritma jika data random, terurut turun, dan terurut naik?turun, dan terurut naik?

3.3. Kapan (dalam situasi seperti apa) masing-Kapan (dalam situasi seperti apa) masing-masing algoritma:masing algoritma:

Menampilkan kinerja terbaik?Menampilkan kinerja terbaik? Menampilkan kinerja terburuk?Menampilkan kinerja terburuk?

4.4. Adakah algoritma lain yang kompleksitas Adakah algoritma lain yang kompleksitas waktunya setara dengan Quick Sort?waktunya setara dengan Quick Sort?

Page 36: Modul II ASD TI - Sorting

3636

REFERENSIREFERENSI

www.uu.edu/dept/math/SeniorPapers/97-98/math/www.uu.edu/dept/math/SeniorPapers/97-98/math/green.ppt green.ppt

www.cise.ufl.edu/~sahni/cop3530/powerpoint/www.cise.ufl.edu/~sahni/cop3530/powerpoint/lec2.ppt lec2.ppt

io.uwinnipeg.ca/~ychen2/AlgorithmNotes/io.uwinnipeg.ca/~ychen2/AlgorithmNotes/class19.ppt class19.ppt

ictlab.tyict.vtc.edu.hk/~aho/TN4439/Lecture4.ppt ictlab.tyict.vtc.edu.hk/~aho/TN4439/Lecture4.ppt Modul praktikum Algoritma & Struktur Data I TI USDModul praktikum Algoritma & Struktur Data I TI USD Prima Rosa. Kinerja Algoritma-Algoritma Prima Rosa. Kinerja Algoritma-Algoritma

Pengurutan Data Internal. Widya Dharma. Pengurutan Data Internal. Widya Dharma. September 1994.September 1994.