Upload
amalianuryamin
View
268
Download
2
Embed Size (px)
DESCRIPTION
Algoritma Quick Short
Citation preview
QUICK SORTAlgoritma Pengurutan
SIMULASI QUICKSORT
3 2 5 1 4
31 52 4
1 2
21
5 4
4 5
RESULT
1 2 3 4 5
3
21 4 5
SIMULASI ALGORITMA QUICKSORT
3 2 5 1 4
QuickSORT(Array, indexawal, indexakhir)
3 2 5 1 4
QuickSORT(data, 1,5)
data
indexawal indexakhir
QuickSORT(data, 1, 5)
3 2 5 1 4
data
indexawal indexakhir
STEP 1IF(indexawal < indexakhir)
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higher
Cek Lower
Cek Higher
If(indexlower < index higher)
Swap
Swap
QuickSORT(data, indexawal,
indexhigher-1)
QuickSORT(data, indexawal,
indexhigher+1)
See Code
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higher
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Lower
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Lower
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Lower
3 5 1 4
Indexhigher
Indexlower
pivot
2
While index lower < index higher Cek Lower
3 5 1 4
Indexhigher
Indexlower
pivot
2
While index lower < index higher Cek Lower
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Higher
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Higher
3 2 5 1 4
Indexhigher
Indexlower
pivot
While index lower < index higherIf(indexlower < index higher)
Swap
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higherIf(indexlower < index higher)
Swap
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Lower
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Lower
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Lower
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Higher
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Higher
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Higher
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higher Cek Higher
3 2 1 5 4
Indexhigher
Indexlower
pivot
While index lower < index higherIf(indexlower < index higher)
Swap
3 2 1 5 4
Indexhigher
Indexlower
pivot
Swap
1 2 3 5 4
Indexhigher
Indexlower
pivot
Swap
1 2 3 5 4
Indexhigher
Indexlower
pivot
Quicksorting(1,2) Quicksorting(4,5)
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher Cek Lower
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher Cek Lower
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher Cek Lower
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher Cek Lower
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher Cek Higher
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher Cek Higher
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher Cek Higher
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
While index lower < index higher
If(indexlower < index higher)
Swap
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
Swap
1 2
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
Quicksorting(1,0) Quicksorting(2,2)
5 4
Indexhigher
Indexlower
pivot
Quicksorting(4,5)
While index lower < index higher
5 4
Indexhigher
Indexlower
pivot
Quicksorting(4,5)
While index lower < index higher Cek Lower
5 4
Indexhigher
Indexlower
pivot
Quicksorting(4,5)
While index lower < index higher Cek Lower
5 4
Indexhigher
Indexlower
pivot
Quicksorting(4,5)
While index lower < index higher Cek Lower
5 4
Indexhigher
Indexlower
pivot
Quicksorting(4,5)
While index lower < index higher Cek Lower
5 4
Indexhigher
Indexlower
pivot
Quicksorting(4,5)
While index lower < index higher Cek Lower
5 4
Indexhigherpivot
Quicksorting(4,5)
While index lower < index higher Cek Higher
Indexlower
5 4
Indexhigherpivot
Quicksorting(1,2)
While index lower < index higher Cek Higher
Indexlower
5 4
pivot
Quicksorting(4,5)
While index lower < index higher
If(indexlower < index higher)
Swap
Indexlower
Indexhigher
5 4
Indexhigher
Indexlower
pivot
Quicksorting(1,2)
Swap
4 5
Indexhigher
Indexlower
pivot
Quicksorting(4,5)
Quicksorting(4,4) Quicksorting(6,5)
RESULT
1 2 3 4 5
TERIMAKASIH
C Code for QuickSORTvoid quicksort(int arr[max],int arrawal,int arrakhir){
int pivot,indexhigher,temp,indexlower;
if(arrawal<arrakhir){
pivot = arrawal;
indexlower = arrawal;
indexhigher = arrakhir;
while(indexlower<indexhigher){
while((arr[indexlower]<=arr[pivot])&&(indexlower<arrakhir)){
indexlower++;
}
while(arr[indexhigher]>arr[pivot]&&(indexhigher>arrawal)){
indexhigher--;
}
if(indexlower<indexhigher){
swap(arr,indexlower,indexhigher);
}
}
swap(arr,pivot,indexhigher);
quicksort(arr,arrawal,indexhigher-1);
quicksort(arr,indexhigher+1,arrakhir);
}
}//end
Swap code
void swap (int a[max], int left, int right){
int temp;
temp=a[left];
a[left]=a[right];
a[right]=temp;
}//end swap
Cek Lower
If(data[indexlower] <= data[pivot] && indexlower < indexakhir )
Indexlower = indexlower + 1
If(data[indexhigher] > data[pivot])
Indexhigher = indexhigher + 1
Cek Higher