C语言版数据结构及算法_快速排序
/*
参数:
a:数组首地址
left:需要排序的数组的开始位置
right:需要排序的数组的结束位置
*/
void qSort(int *a,int left,int right){
//快速排序
if (left>=right) {
return;
}else{
int value=a[left];
int initLeft=left;
int initRight=right;
while (left!=right) {
while (value<a[right]) {
right--;
}
while (value>=a[left]&&right>left) {
left++;
}
if (value<a[left]) {
int x=a[right];
a[right]=a[left];
a[left]=x;
}else{
if (value>a[right]) {
int x=a[right];
a[right]=a[initLeft];
a[initLeft]=x;
}
}
}
qSort(a, initLeft, right-1);
qSort(a, right+1, initRight);
}
}