快速排序是一种不稳定的算法,复杂度o(nlogn).
快速排序使用于记录个数很大且原始记录随机排列的情况。
#include
using namespace std;
int s_psort(int a[],int first,int end)
{
int i=first,j=end,temp;
while(i
{
while(i<=a[j])
j--;
if(i
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
}
while(i<=a[j])
i++;
if(i
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
j--;
}
}
return i;
}
void s_qsort(int a[],int first,int end)
{
int p;
if(first
{
p=s_psort(a,first,end);
s_qsort(a,first,p-1);
s_qsort(a,p+1,end);
}
}
int main()
{ int i=0;
int a[]={8,5,33,2,3,67,23,5,24,23,25,66};
s_qsort(a,0,11);
for(;i<12;i++)
cout<<a[i]<<",";
cout<<endl;
return 0;
}
快速排序使用于记录个数很大且原始记录随机排列的情况。
#include
using namespace std;
int s_psort(int a[],int first,int end)
{
int i=first,j=end,temp;
while(i
{
while(i<=a[j])
j--;
if(i
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
}
while(i<=a[j])
i++;
if(i
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
j--;
}
}
return i;
}
void s_qsort(int a[],int first,int end)
{
int p;
if(first
{
p=s_psort(a,first,end);
s_qsort(a,first,p-1);
s_qsort(a,p+1,end);
}
}
int main()
{ int i=0;
int a[]={8,5,33,2,3,67,23,5,24,23,25,66};
s_qsort(a,0,11);
for(;i<12;i++)
cout<<a[i]<<",";
cout<<endl;
return 0;
}