请高人帮我把这个很短的JAVA程序改成C++

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:01:12
public class S_5
{
int count=0;
public static void main(String args[])
{
int t[]={35,5,86,15,30,15,86,43,54,46,34}; S_5 s=new S_5();
s.QuickSort(t, 0, 10);
float sum=0;
int len=t.length;
System.out.print("存储顺序:");
for(int i:t)
{
System.out.print(i+",");
sum+=i;
}
System.out.println("\n平均读取时间:"+sum/len);
System.out.println("比较次数:"+s.count);
}
public void QuickSort(int r[],int s,int t)
{
int i=s,j=t;
int temp;
if(s<t)
{
count++;
temp=r[s]; while(i!=j)
{
count++;
while(j>i&&r[j]>=temp)
{j--;count++;};
r[i]=r[j];
while(i<j&&r[i]<=temp) {i++;count++;} r[j]=r[i];
}
r[i]=temp;
QuickSort(r,s,i-1);

我完成了,代码和结果如下,你的排序方法很厉害,佩服:
#include<iostream.h>
class S_5
{
public:
S_5()
{
count=0;
}
int count;
void QuickSort(int r[],int s,int t);
};

void S_5::QuickSort(int r[],int s,int t)
{
int i=s,j=t;
int temp;
if(s<t)
{
count++;
temp=r[s];
while(i!=j)
{
count++;
while(j>i&&r[j]>=temp)
{j--;count++;};
r[i]=r[j];
while(i<j&&r[i]<=temp)
{i++;count++;}
r[j]=r[i];
}
r[i]=temp;
QuickSort(r,s,i-1);
QuickSort(r,i+1,t);
}
}
void main()
{
int t[]={35,5,86,15,30,15,86,43,54,46,34};
S_5 s;
s.QuickSort(t,0,10);
float sum=0;
int len=sizeof(t)/sizeof(int);
cout<<"存储顺序:";
for(int i=0;i<len;