QUICK SORT
KELOMPOK 5
Insertion Sort
Insertion sort adalah sebuah metode pengurutan data
dengan menempatkan setiap elemen data pada posisinya
dengan cara melakukan perbandingan dengan data data
yang ada. Ide algoritma dari metode insertion sort ini
dapat dianalogikan sama seperti mengurutkan kartu,
dimana jika suatu kartu dipindah tempatkan menurut
posisinya, maka kartu yang lain akan bergeser mundur
atau maju sesuai kondisi pemindahanan kartu tersebut.
Dalam pengurutan data, metode ini dipakai bertujuan
untuk menjadikan bagian sisi kiri array terurutkan sampai
dengan seluruh array diurutkan.
Caranya :
1. Ambil bilangan ketiga (4)
Sekarang, tiga bilangan pertama sudah terurut secara relatif dan kita
sisipkan bilangan keempat kepada tiga bilangan pertama tersebut.
Setelah penyisipan, empat bilangan pertama haruslah dalam
keadaan terurut secara relatif.
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main(){
int j,k, temp;
int L[5];
L[1]=1;
L[2]=25;
L[3]=10;
L[4]=30;
L[5]=2;
for(k=2;k<=5;k++){
temp=L[k];/* ambil elemen L[k] supaya tidak tertimpa penggeseran*/
/* Cari Posisi Yang tepat dalam L[1..k-1] sambil menggeser*/
j=k-1;
while(temp<=L[j])
{
L[j+1]=L[j];
j--;
}
Kesimpulan
Kelemahan metode sisip(insert) terletak pada
banyaknya operasi yang diperlukan dalam
mencari posisi yang tepat untuk elemen larik.
Untuk larik yang jumlahnya besar ini tidak
praktis. Dari ketiga metode tersebut,
pengurutan maksimum/minimum memiliki
kinerja yang terbaik.
Quick Sort
Dinamakan quick sort karena dapat mengurutkan data dengan
sangat cepat. Dimana cara kerjanya adalah dengan
membandingkan suatu elemen(poros) dengan elemen yang lain
dan menyusun sedemikian rupa sehingga elemen-elemen lain
yang lebih kecil dari pada poros tersebut terletak disebelah
kirinya dan elemen-elemen lain yang lebih besar dari pada poros
tersebut terletak disebelah kanannya. Sehingga dengan demikian
telah terbentuk dua sublist, Lalu pada sublist kiri dan sublist
kanan kita anggap sebuah list baru dan kita kerjakan proses yang
sama seperti sebelumnya. Demikian seterusnya sampai tidak
terdapat sublist lagi.
Sehingga di dalamnya telah terjadi proses rekursif.
Quick Sort
Quick-sort adalah teknik pengurutan data yang
memiliki kerumitan rata-rata O(n log n) tetapi dalam
worst-case bisa mencapai O(n2)
Teknik Quick-sort berbasis teknik divide-andconquer, sbb:
Divide : array A[p..r] dibagi menjadi A[p..q] dan A[q+1 ..r]
sehingga setiap elemen A[p..q] lebih kecil dari atau sama
dengan setiap elemen A[q+1..r]
Conquer : subarray A[p..q] dan A[q+1..r] juga di-sort
menurut Quick-Sort
Combine : pada akhirnya A[p..r] akan ber-urutan
QuickSort(A,p,r)
if (p < r)
then q Partisi(A,p,r);
QuickSort(A,p,q);
QuickSort(A,q+1,r);
Partisi(A,p,r)
x A[p]; i (p-1); j (r+1);
while (true) {
repeat (j j -1) until (A[j] <=
x)
repeat (i i+1) until (A[i] >=
x)
if (i < j)
then Swap(A[i], A[j])
else Return (j)
}
Analisis :
Worst-case : terjadi apabila partisi memberikan
q=(n-1), atau subarray pertama = A[1..n-1] dan
subarray kedua hanya 1 elemen A[n]
T(n) = T(n-1) + (n), jadi T(1) = (1)
n
n
Solusinya =
2
(
k
)
(
k
)
(
n
)
k 1
k 1
TERIMA KASIH