快速排序是目前使用較好的排序算法,它是由C.A.Hoare發(fā)明并命名的。快速排序基本算法思想:通過(guò)一次分割,將無(wú)序序列分成兩部分,其中前一部分的元素值均不大于后一部分的元素值。然后對(duì)每一部分利用同樣的方法進(jìn)行分割,這個(gè)過(guò)程一直做到每一個(gè)子序列的長(zhǎng)度小于某個(gè)值m為止。
對(duì)序列p的分割過(guò)程: 首先,在序列的第一個(gè)、中間一個(gè)及最后一個(gè)元素中選取中項(xiàng),得p(k),然后設(shè)置兩個(gè)指針i和j分別指向序列的起始和最后的位置.
Status Quick_Sort(ElemType A[],int left,int right){
tmp=A[(left+right)/2];
do{
while(A[i] while(A[j]>tmp&&j>left) j--;
if(i<=j){
swap(A[i],A[j]);
i++;
j--;
}
}while(i<=j);
if(left if(i return 1;
}
============================================
對(duì)序列p的分割過(guò)程: 首先,在序列的第一個(gè)、中間一個(gè)及最后一個(gè)元素中選取中項(xiàng),得p(k),然后設(shè)置兩個(gè)指針i和j分別指向序列的起始和最后的位置.
Status Quick_Sort(ElemType A[],int left,int right){
tmp=A[(left+right)/2];
do{
while(A[i]
if(i<=j){
swap(A[i],A[j]);
i++;
j--;
}
}while(i<=j);
if(left
}
============================================

