一般分如下步驟:
1)選擇一個(gè)樞紐元素(有很對選法,我的實(shí)現(xiàn)里采用去中間元素的簡單方法)
2)使用該樞紐元素分割數(shù)組,使得比該元素小的元素在它的左邊,比它大的在右邊。并把樞紐元素放在合適的位置。
3)根據(jù)樞紐元素最后確定的位置,把數(shù)組分成三部分,左邊的,右邊的,樞紐元素自己,對左邊的,右邊的分別遞歸調(diào)用快速排序算法即可。public static void quicksort(int stru[], int left, int right){
1)選擇一個(gè)樞紐元素(有很對選法,我的實(shí)現(xiàn)里采用去中間元素的簡單方法)
2)使用該樞紐元素分割數(shù)組,使得比該元素小的元素在它的左邊,比它大的在右邊。并把樞紐元素放在合適的位置。
3)根據(jù)樞紐元素最后確定的位置,把數(shù)組分成三部分,左邊的,右邊的,樞紐元素自己,對左邊的,右邊的分別遞歸調(diào)用快速排序算法即可。public static void quicksort(int stru[], int left, int right){
if(left<right){
int i=left,j=right;
int X=stru[i];
int n=i;
while(i<j){
while(X<stru[j]&&j>i){
j--;
}
stru[n]=stru[j];
n=j;
while(X>stru[i]&&i<j){
i++;
}
stru[n]=stru[i];
n=i;
}
stru[i]=X;
quicksort(stru,left,j-1);
quicksort(stru,j+1,right);
}
}