#include <stdio.h>
#define MAXSIZE 500
void quickSort(int elements[], int maxsize);
void sort(int elements[], int left, int right);
int elements[MAXSIZE];
int main()
{
int i, maxsize;
printf("\nHow many elements you want to sort: ");
scanf("%d",&maxsize);
printf("\nEnter the values one by one: ");
for (i = 0; i < maxsize; i++)
{
printf ("\nEnter element %i :",i);
scanf("%d",&elements[i]);
}
printf("\nArray before sorting:
");
for (i = 0; i < maxsize; i++)
printf("[%i], ",elements[i]);
printf ("\n");
quickSort(elements, maxsize);
printf("\nArray after sorting:
");
for (i = 0; i < maxsize; i++)
printf("[%i], ", elements[i]);
}
void quickSort(int elements[], int maxsize) \n{
sort(elements, 0, maxsize - 1);
}
void sort(int elements[], int left, int right)v{
int pivot, l, r;
l = left;
r = right;
pivot = elements[left];
while (left < right)
{
while ((elements[right] >= pivot) && (left < right))
right—;
if (left != right)
{
elements[left] = elements[right];
left++;
}
while ((elements[left] <= pivot) && (left < right))
left++;
if(left != right)
{
elements[right] = elements[left];
right—;
}
}
elements[left] = pivot;
pivot = left;
left = l;
right = r;
if (left < pivot)
sort(elements, left, pivot - 1);
if (right > pivot)
sort(elements, pivot + 1, right);
}
Output:
How many elements you want to sort:4
Enter element 4 :5 3 6 2
Array after sorting:2 3 5 6
ليست هناك تعليقات:
إرسال تعليق