60 lines
1.6 KiB
C
60 lines
1.6 KiB
C
|
/*
|
||
|
* C Program to Perform Quick Sort on a set of Entries from a File
|
||
|
* using Recursion
|
||
|
*/
|
||
|
#include <stdio.h>
|
||
|
|
||
|
void quicksort (int [], int, int);
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
int list[50];
|
||
|
int size, i;
|
||
|
printf("Enter the number of elements: ");
|
||
|
scanf("%d", &size);
|
||
|
printf("Enter the elements to be sorted:\n");
|
||
|
for (i = 0; i < size; i++)
|
||
|
{
|
||
|
scanf("%d", &list[i]);
|
||
|
}
|
||
|
quicksort(list, 0, size - 1);
|
||
|
printf("After applying quick sort\n");
|
||
|
for (i = 0; i < size; i++)
|
||
|
{
|
||
|
printf("%d ", list[i]);
|
||
|
}
|
||
|
printf("\n");
|
||
|
return 0;
|
||
|
}
|
||
|
void quicksort(int list[], int low, int high)
|
||
|
{
|
||
|
int pivot, i, j, temp;
|
||
|
if (low < high)
|
||
|
{
|
||
|
pivot = low;
|
||
|
i = low;
|
||
|
j = high;
|
||
|
while (i < j)
|
||
|
{
|
||
|
while (list[i] <= list[pivot] && i <= high)
|
||
|
{
|
||
|
i++;
|
||
|
}
|
||
|
while (list[j] > list[pivot] && j >= low)
|
||
|
{
|
||
|
j--;
|
||
|
}
|
||
|
if (i < j)
|
||
|
{
|
||
|
temp = list[i];
|
||
|
list[i] = list[j];
|
||
|
list[j] = temp;
|
||
|
}
|
||
|
}
|
||
|
temp = list[j];
|
||
|
list[j] = list[pivot];
|
||
|
list[pivot] = temp;
|
||
|
quicksort(list, low, j - 1);
|
||
|
quicksort(list, j + 1, high);
|
||
|
}
|
||
|
}
|