快速排序
快速排序像合并排序一样,也是基于分治模式的。
#include <iostream> using namespace std; int partition(int A[],int p,int r); void QuickSort(int A[],int p,int r){ int q; if (p<r) { q=partition(A,p,r); QuickSort(A,p,q-1); QuickSort(A,q+1,r); } } int partition(int A[],int p,int r){ int x=A[r],i=p-1,temp; for (int j=p;j<r;j++) { if (A[j]<=x) { i++; temp=A[i]; A[i]=A[j]; A[j]=temp; } } temp=A[i+1]; A[i+1]=A[r]; A[r]=temp; return (i+1); } int main(){ int A[4]={4,3,2,1}; QuickSort(A,0,3); for (int i=0;i<4;i++) { cout<<A[i]<<" "; } return 0; }