0
已采纳
黄品翔
初级光能
初级光能
#include<bits/stdc++.h>
#include<vector>
using namespace std;
int a[101],N;
void f(int t[],int l,int r)//t是一个数组,从l到r排序
{
int i=l,j=r,mid=t[(l+r)/2];
while(i<=r)//为了分成左右两组
{
while(mid>t[i])
{
i++;
}
while(mid<t[j])
{
j--;
}
if(i<=j)
{
swap(t[i],t[j]);
i++;
j--;
}
}
if(l<j)
{
f(t,l,j);
}
if(l<r)
{
f(t,i,r);
}
return ;
}
int main()
{
cin>>N;
for(int i=1;i<=N;i++)
{
cin>>a[i];
}
f(a,1,N);
for(int i=1;i<=N;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
是这个不?
0
0
赵朗
高级光能
高级光能
emmm
sort
头文件#include<algorithm>
输入n个数字//你别跟我说你不会
sort(要排序的数组的起始地址,结束的地址)
如果要实现从大到小等其他类型排序就加一个cmp函数
例如:
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 bool cmp(int a,int b); 5 main(){ 6 //sort函数第三个参数自己定义,实现从大到小 7 ... 8 sort(a,a+n,cmp); 9 ... 10 ... 11 } 12 //从大到小函数 13 bool cmp(int a,int b){ 14 return a>b; 15 }
0
杜文博
资深守护
资深守护
1.sort要头文件#include<algorithm>
2.如果你是从0开始,用sort(a,a+n) 从小到大;如果你是从1开始,用sort(a+1,a+1+n) 从小到大
3.如果你想从大到小,
bool cmp(int a,int b) { cong 0kaishi :return a>b; }
从0开始:sort(a,a+n,cmp);
从1开始:sort(a+1,a+1+n,cmp);
0
0