C++编程..用快序排列法对10个整数从小到大排列

来源:百度知道 编辑:UC知道 时间:2024/05/24 07:18:01
C++编程..用快序排列法对10个整数从小到大排列

救命..~~~~~~~~~

#include<iostream.h>
int partition(inta[],int p,int r)
{
int i=p,j=r+1;
int x=a[p];//将<x的元素交换到左边区域,将>x的元素交换到右边区域
while(true)
{
while(a[++i]<x);
while(a[--j]>x);
if(i>=j)
break;
swap(a[i],a[j]);
}
a[p]=a[j];
a[j]=x;//位置交换
return j;

}
void main(partition){
a[10]={4,5,6,8,9,7,2,3,1,8} ;
for(int k=1;k<=10;k++)
cout<<a[k]<<endl;
}

快速排序:
int partition(int* a,int l,int r)
{
int i=l-1,j=r,v=a[r];
while(1)
{
while(a[++i]<v);
while(a[--j]>v) if(j<=i) break;
if(i>=j)
break;
swap(a[i],a[j]);
}
swap(a[i],a[r]);
return i;
}

void qsort(int* a,int l,int r)
{
if(r>l)
{
int i = partition(a,l,r);
qsort(a,l,i-1);
qso