SORTING ALGORITHM ANALYSIS
June 30th, 2007
Tujuan
Tujuan dari analisa algorithma adalah untuk mengetahui efisiensi algoritma dalam hal ini yang akan dibahas adlah algorithma sorting “quick sort” terhadap algoritma “selection sort”. Analisis dilakukan dengan membandingkan running time ( waktu komputasi ) antara algoritma “quick sort” terhadap algorithma “selection sort” dan jumlah proses/langkah/pembandingan data antara algoritma “quick sort” terhadap algorithma “selection sort”. Hasil analisis yang dapat adalah jumlah running time (waktu komputasi) dan jumlah proses/langkah/pembandingan data/proses untuk masing-masing algoritma.
TAHAP ANALISIS
Tahap awal analisis adalah melakukan pengecekan program untuk memastikan bahwa program telah benar secara logika maupun sintak ( tahap tracing/debugging), Tahap selanjutnya yaitu menjalankan program untuk mengetahui running time/waktu komputasi ( termasuk jumlah langkah ).
Data uji yang digunakan adalah data yang tidak terurut/random, terurut membesar/ascending, dan terurut mengecil/descending.
SELECTION SORT
PSEUDOCODE
-
For I in 1..N-1 loop
-
Pos = I
For J in I+1..N loop
-
If item in position J is < (or > ) item in Pos then Pos = J
end loop
If Pos /= I then swap elements in positions I and Pos
end loop
ANALISIS ALGORITMA DAN KOMPLEKSITAS
Pengurutan dengan pemilihan ini dilakukan dengan cara mencari suatu nilai ekstrim ( minimal /maksimal ) untuk ditukarkan dengan elemen terujung yang ada pada suatu loop proses. Kemudian elemen terujung tidak lagi diikutkan dalam proses pengurutan selanjutnya karena elemen terujung tersebut sudah merupakan data yang minimal/maksimal dalam proses pengurutan tahap 1. Proses selanjutnya dilakukan untuk data yang tersisa dalam array.
Misalnya array tersebut adalah X, maka pada setiap saat terdapat i buah data terurut pada X[0], X[1], …, X[i-1], dan data tak terurut pada X[i], X[i+1], …, X[n-1]. Algoritma melakukan pencarian X[j] terkecil dari data set yang belum terurut tersebut, misalnya didapat X[m] lalu melakukan penukaran X[i] dengan X[m] sehingga kemudian sudah terurut i+1 buat data dalam X.
Hasil pengurutan data ( mengecil/membesar ) bergantung dari nilai ektrim yang kita inginkan. Jika yang kita cari adalah nilai ektrim terkecil maka kita dapatkan array yang terurut membesar, dan begitupun sebaliknya.
Jadi total running timenya adalah:
c * n * n = cn2 = O(n^2)
QUICK SORT
PSEUDOCODE
-
Function QuickSort (Array(First..Last))
-
if Array contains only one element then return Array;
-
//Partitioning step
Choose a pivot and put swap it with Array[First];
LeftPtr = First + 1;
RightPtr = Last;
while (RightPtr > = LeftPtr)
while (Array[LeftPtr] < Pivot)
increment LeftPtr;
while (Array[RightPtr] > Pivot)
decrement RightPtr;
swap Array[LeftPtr] and Array[RightPtr];
swap Array[First] and Array[RightPtr];
//End partitioning step
Array[First..RightPtr-1] = QuickSort(Array[First .. RightPtr-1]);
Array[RightPtr+1..Last] = QuickSort(Array[RightPtr+1..Last]);
ANALISIS ALGORITMA DAN KOMPLEKSITAS
Sesuai namanya “Quick Sort”, adalah algorithma sorting tercepat di dalam proses sorting. “Quick Sort” menggunakan “divide-and-conquer recursive algorithm”.
Algorithma dasar dalam yang dipakai untuk mengurutkan sebuah array S terdiri dari empat tahap, yaitu :
- Jika jumlah elemen S 0 atau 1, berhenti.
- Ambil secara acak elemen v di dalam array S. Ini yang disebut pivot.
- Bagi menjadi 2 bagian array S, elemen selain v, menjadi 2 qroup : S1 = {x S – {v} x ≤ v } dan S2 = {x S – {v} x ≥ v }
- Lakukan quick sort pada S1 dan diikuti S2
-
Sehingga didapat persamaan :
T(n) = 2T(n/2) + θ(n)
Notasi 0 / Big O dapat dihitung dengan metode master :
T(n) = 2T(n/2) + θ(n) a = 2, b = 2 dan f(n) = θ(n) = n
n logba = n log22 = n
sehingga sesuai dengan kasus 2 teorema master, karena :
n logba = n = f(n)
jadi total running timenya adalah :
T(n) = θ(n lg n).
Lebih detail tantang uji unjuk kerja silahkan akses disini.
Inlinks :
- Apa itu Algorithms?
- Bubble-sort Source-Code
- Data Security
- Enkripsi RC4 part 2
- Heap-sort Source-Code
- Insertion-sort Source-Code
- Keamanan Informasi dan Kriptografi
- LINEAR DISCRIMINANT ANALYSIS (LDA)
- Matrix-Chain-Multiply Source-Code
- Matrix-Chain-Order
- MD5 and SHA-1 ( Hash Function Chryptography )
- Merge-sort Source-Code
- Quick-sort Source-Code
- Sejarah Kriptografi
- Selection-sort Source-Code
- SORTING ALGORITHM #1
- SORTING ALGORITHM ANALYSIS







boleh?? minta program algoritma untuk menghitung kompleksitas waktu dari macam2 sorting??? dikirim ke email diatas… terimakasih
Comment by leeche — November 18, 2007 @ 1:58 pm
program saya dalam versi power builder. gimana? mau? kayak iklan 3 aja ya. he he he
Comment by admin — November 19, 2007 @ 10:36 am
cara hitung kompleksitas nya gmn yah??
btw, bisa ga dicantumkan algoritma Heap, Merge gt?
Thanks
Comment by virus — November 20, 2007 @ 9:42 am
sedang dibuat artikel tentang heap dan merge sort. sabar ya.
Comment by admin — November 20, 2007 @ 9:56 am
Boleh nggak saya minta listing prgram quicksort dan contoh penggunaan secara aplikasi
Comment by kunjung wahyudi — November 23, 2007 @ 8:16 am
quick-sort source-code : http://ilmu-komputer.net/algorithms/quick-sort-source-code/
Comment by admin — November 27, 2007 @ 2:33 pm
Mas2… Klo bwad Sorting accending dan deccending gimana y ??? mohon dobalas y….
Comment by Tista — December 27, 2007 @ 4:56 pm
wah sekilas membingungkan buat kuh..
tapi reverensi itu stelah dibaca dan diaplikasiin di program yang ku buat jadi mudah juga ya.. thanks ya!
Comment by diki dewanto — January 1, 2008 @ 1:43 pm
coba buka http://ilmu-komputer.net/algorithms/quick-sort-source-code/
terdapat 2 baris yaitu :
1. while ((numbers[right] >= pivot) && (left < right))
2. while ((numbers[left] <= pivot) && (left < right))
Coba ubah ke duanya, yaitu pada >= dan < =,
misal menjadi <= dan >=. Cek hasilnya.
Comment by admin — January 3, 2008 @ 10:38 am
wah2 asik2 jd membantu tugas alpro ku
asli kaga ngerti aq ama yg namanya alpro
tq2
Comment by ciple — March 21, 2008 @ 10:47 am
boleh minta program kuis atau program konversi? cari dimana ya?
Comment by daii — April 20, 2008 @ 3:04 pm
Maaf, maksudnya konversi apa ya?
Comment by Unggul_USA — April 21, 2008 @ 9:38 am
gmana sich caranya bwat prosedur pseudocode.. ? bisa minta contohnya ga bwat prosedur simpan,cari,edit,dan hapus..?bales ya….penting
Comment by elza — June 16, 2008 @ 1:27 pm
salam untuk penulis .
saya ahmad ,mahasiswa salah satu PT di Bandung
kebetulan TA saya mengenai kriptografi “analisis 2 metode MMB dan RC 6″
ingin meminta tolong ke penulis referensi bwt analisis kompleksitas waktu dan ruang 2 metode tersebut dan uji keamanan algoritmanya.
terima kasih.
jawaban anda sangat membantu saya.
Comment by ahmad — June 18, 2008 @ 9:20 am