#include<iostream>
using namespace std;
#include<vector>
void quicksort(int *a,int low,int high){
int mid;
mid = findmid(a,low,high); //找到第一个停止的点。
quicksort(a,low,mid-1); //以停止点为中心,继续便利左边。
quicksort(a,mid+1,high); //继续遍历右边。
}
int findmid(int *a,int low,int high){
int i,j = low, high;
int mid = a[low];
while(i<j){
while(i<j&&mid<a[j]){
//当左边的基准值小于右边的每一个变量j--就往左继续移动,直到找到小于基准值的点。
j--;
}
if(i<j){
//进行交换。
swap(a[j],a[i+1];)
}
while(i<j&&a[i]<=mid){
i++;
}
if(i<j){
swap(a[i],a[j--];)
}
}
return i;
}
void swap(int &a,int &b){
int temp;
temp = a;
a = b;
b = temp;
}
int main(){
int a[2,1,3,4,2];
quicksort(a,0,4);
return 0;}
11-10
694
10-14
198
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交