#include <stdio.h>
#include <stdlib.h>
#define N 10
void quickSort(int *A, int first, int last)
{
int pivot,i,j,temp;
if(first>=last) return;
pivot = first;
i = first;
j = last;
//partition
while(i < j)
{
while(A[i] <= A[pivot])
i++;
while(A[j] > A[pivot])
j--;
if(i < j)
{
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
temp = A[pivot];
A[pivot] = A[j];
A[j] = temp;
quickSort(A,first,j-1);
quickSort(A,j+1,last);
}
void printArray(int A[])
{
int i;
printf("Array A = { ");
for (i=0;i<N;i++)
printf("%d ",A[i]);
printf("}");
printf("\n");
}
int main(void)
{
int A[N] = {45,76,23,67,12,786,23,58,2,541};
//Before Sort
printArray(A);
//Merge sort
quickSort(A,0,N-1);
//Before Sort
printArray(A);
return 0;
}
Quick Sort
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment