有一个给一串数字排序的题,果然以oj的尿性,有1000000个数字排序,这让冒泡法显得很呆,直接超时无法输出。
于是我学习了一种新的函数,叫做sort函数,很好使不得不说。
sort(a,a+i);
a指的是这组需要排序的数字的首地址,当然只写数组名也能表示,i指的是需要排序的长度,比如说前i个数字都要排序,就酱。
代码如下:
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int a[2000000];
int main()
{
int n;
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
for(int i=0;i<n;i++)
printf("%d ",a[i]);
}
return 0;
}
这个函数好厉害,居然能直接把数列排好序并且放在数组里。
可是a为什么要定义在主函数外呢?
我试过定义在主函数内,根本无法输出是因为时间超限了嘛?