void quick_sort(int* Num, int L, int R) { if (L >= R)return; swap(Num[L], Num[L + R >> 1]); int i = L; int j = R; int Temp = Num[L]; while (i < j) { for (; Num[j] >= Temp&&i<j; j--); for (; Num[i] <= Temp&&i<j; i++); swap(Num[i], Num[j]); } swap(Num[i], Num[L]); quick_sort(Num, L, i -1); quick_sort(Num, i + 1, R); }
非常的精简,非常的美味
附加三元取中的模板方法
int Get_pivot(int *Num,int L,int R) { int mid = (L + R) / 2; if (Num[L] > Num[R]) swap(Num[L], Num[R]);//确保最左边大于最右边 if (Num[R] > Num[mid]) swap(Num[R], Num[mid]); if (Num[L] > Num[mid]) swap(Num[L], Num[mid]);
三轮过后会使得中间值交换到mid位置 return mid; }
标签:int,mid,快排,Num,swap,模板 From: https://www.cnblogs.com/WKWKSL/p/17344448.html