#include<bits/stdc++.h>
using namespace std;
void quicksort(int array[], int L, int R) {
if (L < R) {
int i = L, j = R;//双指针,以数组区间array[L]~array[R]内的最后一个数array[r]为基准
while (i < j) {
while ( i<j&&array[i] < array[R]) {//从左往右找到第一个比基准大的
i++;
}
while ( i<j&&array[j] > array[R]) {//从右往左找到第一个比基数小的
j--;
}
if(i<j){
swap(array[i], array[j]);
i++;
}
}
swap(array[i], array[R]);
quicksort(array, L, i - 1);
quicksort(array, i + 1, R);
}
}
int main() {
int len=100;
int array[len];
srand((unsigned )time(NULL));
for(int i=0;i<len;i++)
array[i]=rand()%100;
quicksort(array, 0, len - 1);
for (int i = 0; i < len; i++)
cout << array[i] << " ";
return 0;
}
快速排序
最新推荐文章于 2021-09-24 10:45:10 发布