c语言 输入1~10用擂台法排序从大到小
收起
知与谁同
2018-07-15 20:17:08
3904
0
1
条回答
写回答
取消
提交回答
-
#include <iostream>
using namespace std;
#define N 10
void MpSort(int *a,int n)
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
a[j]=a[j]+a[j+1];
a[j+1]=a[j]-a[j+1];
a[j]=a[j]-a[j+1];
}
}
}
}
int main()
{
int i,j;
int *a=new int[N];
for(i=0;i<N;i++)
{
cin>>a[i];
}
MpSort(a,N);
for(i=0;i<N;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
//冒泡排序
//时间复杂度是 O(pow(n,2))
#include <iostream>
using namespace std;
#define N 10
void XzSort(int *a,int n)
{
int i,j,min_i,t;
for(i=0;i<n-1;i++)
{
min_i=i;
for(j=i+1;j<n;j++)
{
if(a[min_i]>a[j])
{
min_i=j;
}
}
if(min_i!=i)
{
t=a[i];
a[i]=a[min_i];
a[min_i]=t;
}
}
}
2019-07-17 22:49:52