qsort原理 实现

抄华哥的

#include <iostream> #include <stdlib.h> #include <ctime> using namespace std; int partition(int *A,int p,int r) { int i,j,x; x=A[r]; i=p-1; for(j=p;j<r;j++) if(A[j] <= x) { i++; swap<int>(A[i],A[j]); } swap<int>(A[i+1],A[r]); return i+1; } void quicksort(int *A,int p,int r) { if(p >= r) return ; int q=partition(A,p,r); quicksort(A,p,q-1); quicksort(A,q+1,r); } void Show(int *A,int p,int r) { for(int i=p;i<=r;i++) cout<<A[i]<<" "; cout<<endl; } int main() { int i; int A[10]; srand((unsigned int)time(NULL)); for(i=0;i<10;i++) A[i]=rand()%20; Show(A,0,9); quicksort(A,0,9); Show(A,0,9); system("pause"); return 0; }

你可能感兴趣的:(null,System,iostream)