Skip to content

Commit 611bc8b

Browse files
authored
added quicksort.c
1 parent da0415c commit 611bc8b

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

Sorting/QuickSort/C/quicksort.c

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#include<stdio.h>
2+
3+
void swap(int* a, int* b)
4+
{
5+
int t = *a;
6+
*a = *b;
7+
*b = t;
8+
}
9+
10+
int partition (int arr[], int low, int high)
11+
{
12+
int pivot = arr[high];
13+
int i = (low - 1);
14+
15+
for (int j = low; j <= high- 1; j++)
16+
{
17+
if (arr[j] <= pivot)
18+
{
19+
i++;
20+
swap(&arr[i], &arr[j]);
21+
}
22+
}
23+
swap(&arr[i + 1], &arr[high]);
24+
return (i + 1);
25+
}
26+
27+
void quickSort(int arr[], int low, int high)
28+
{
29+
if (low < high)
30+
{
31+
int pi = partition(arr, low, high);
32+
33+
quickSort(arr, low, pi - 1);
34+
quickSort(arr, pi + 1, high);
35+
}
36+
}
37+
38+
void printArray(int arr[], int size)
39+
{
40+
int i;
41+
for (i=0; i < size; i++)
42+
printf("%d ", arr[i]);
43+
printf("n");
44+
}
45+
46+
int main()
47+
{
48+
int arr[] = {10, 7, 8, 9, 1, 5};
49+
int n = sizeof(arr)/sizeof(arr[0]);
50+
quickSort(arr, 0, n-1);
51+
printf("Sorted array: n");
52+
printArray(arr, n);
53+
return 0;
54+
}

0 commit comments

Comments
 (0)