Skip to content

Commit 6025915

Browse files
authored
Create quicksort.c
1 parent 063970b commit 6025915

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

quicksort.c

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include<stdio.h>
2+
#include<stdlib.h>
3+
4+
void swap(int *p, int *q)
5+
{
6+
int temp;
7+
temp = *p;
8+
*p = *q;
9+
*q = temp;
10+
}
11+
12+
int partition(int A[],int l,int h)
13+
{
14+
15+
int pivot=A[l];
16+
int i=l,j=h;
17+
do
18+
{
19+
do{i++;}while(A[i]<=pivot);
20+
do{j--;}while(A[j]>pivot);
21+
if(i<j)swap(&A[i],&A[j]);
22+
}while(i<j);
23+
swap(&A[l],&A[j]);
24+
return j;
25+
}
26+
27+
28+
void QuickSort(int A[],int l, int h)
29+
{
30+
int j;
31+
if(l<h)
32+
{
33+
j=partition(A,l,h);
34+
QuickSort(A,l,j);
35+
QuickSort(A,j+1,h);
36+
}
37+
}
38+
39+
40+
int main()
41+
{
42+
int A[11] = {1,5,2,1,6,3,6,2,5,10};
43+
int i;
44+
A[10] = INT32_MAX;
45+
QuickSort(A,0,10);
46+
for(i=0;i<10;i++)
47+
{
48+
printf("%d ",A[i]);
49+
}
50+
return 0;
51+
}

0 commit comments

Comments
 (0)