快速排序 C++

来源:互联网 发布:软件服务外包合同范本 编辑:程序博客网 时间:2024/05/21 09:55

讲解建议大家直接看算法导论

#include <iostream>using namespace std;int Partition(int a[],int,int);void QuickSort(int a[],int,int);int main(){  int a[10] = {1,2,4,56,25,1,33,6,77,1};  int len = sizeof(a)/sizeof(int);  cout<<"origin:"<<endl;  for(int i=0;i<len;i++)  {      cout<<a[i]<<" ";  }  cout<<endl<<"sorted:"<<endl;  QuickSort(a,0,len-1);  for(int i=0;i<len;i++)  {      cout<<a[i]<<" ";  }  cout<<endl;  return 0;}int Partition(int a[],int p,int r){    int x = a[r];    int i = p-1;    for(int j=p;j<=r-1;j++)    {        if(a[j]<=x)        {            i=i+1;            int temp =a[j];            a[j]=a[i];            a[i] = temp;        }    }    int temp = a[r];    a[r] = a[i+1];    a[i+1] = temp;    return i+1;}void QuickSort(int a[],int p,int r){    if(p<r)    {        int q = Partition(a,p,r);        QuickSort(a,p,q-1);        QuickSort(a,q+1,r);    }}


1 0
原创粉丝点击