#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
void Qsort(double *a,int l,int r){
if (l >= r) return;
int i = l;
int j=r+1;
double temp=a[l];
while(true){
do{
i++;
}while(a[i]<temp);
do{
j--;
}while(a[j]>temp);
if(i>j)break;
double temp2=a[i];
a[i]=a[j];
a[j]=temp2;
}
a[l]=a[j];
a[j]=temp;
Qsort(a,l,j-1);
Qsort(a,j+1,r);
}
int main()
{
double a[1000];
int n;
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>a[i];
}
Qsort(a,0,n-1);
//------------------------
double s=a[n-1];
for(int i=n-2;i>=0;i--)
{
s=2*sqrt(s*a[i]);
}
printf("%.3lf/n",s);
}
}
本文介绍了一种基于快速排序算法的实现,并演示了如何利用该排序后的数组进行特定的数学运算。通过C++代码展示了整个过程,包括输入数组、进行快速排序、执行运算并输出结果。
1597

被折叠的 条评论
为什么被折叠?



