1. 程式人生 > >C語言版數據結構及算法_快速排序

C語言版數據結構及算法_快速排序

log div 結構 gpo value val 結束 開始 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);

}

}

C語言版數據結構及算法_快速排序