求C++程序原码,N个数升序排列。

来源:百度知道 编辑:UC知道 时间:2024/06/07 19:31:34
求C++的程序原码,题目是把N个数升序排列,要求用三种不同方法......

快速排序
#include <iostream>
using namespace std;

void quicksort(int R[],int left,int right) {
int i=left,j=right;int temp=R[i];
while(i<j) {
while ((R[j]>temp)&&(j>i)) j=j-1;
if (j>i) { R[i]=R[j];i=i+1; }
while ((R[i]<=temp)&&(j>i)) i=i+1;
if (i<j) {R[j]=R[i]; j=j-1; }
}
R[i]=temp;
if (left<i-1) quicksort(R,left,i-1);
if (i+1<right) quicksort(R,i+1,right);
}

int main()
{
int a[10];
for(int i=0; i<10; i++)
{
cin>>a[i];
}
quicksort(a,0,9);
for(i=0; i<10; i++)
{
cout<<a[i]<<endl;
}
return 0;
}
堆排序:
#include <iostream>
using namespace std;
int a[1000],x,len,k;
void fp(int a[],int i)
{
int l=2*i,r=2*i+1,largest;
if(a[i]<a[l] && l<=k)
largest=l;
else
largest=i;
if(a[r]>a[large