| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:超时了!!!怎么弄啊????
取消只看楼主 加入收藏
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
超时了!!!怎么弄啊????
描述
给定n个正整数,输出前m小的。
输入
两个整数n (0 < n <= 1000000)和 m  (0 < m <= 1000)
接下来的n行,每行有一个正整数
输出
只有一行,表示前m小的数,注意行末不要有多余的空格
样例输入
6 3
5
6
4
1
2
3
样例输出
1 2 3




#include<iostream>
using namespace std;
void sort(int a[],int n)
{
    int i,j,max;
    for(i=n-1;i>0;i--)
        for(j=0;j<i;j++)
            if(a[j]>a[j+1])
            {
                a[j] = a[j]^a[j+1];
                a[j+1] = a[j+1]^a[j];
                a[j] = a[j]^a[j+1];
            }   
}
int main()
{
    int i,m,n;
    int *p = new int[n];
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
        scanf("%d",&p[i]);
    sort(p,n);
    for(i=0;i<m-1;i++)
        printf("%d ",p[i]);
    printf("%d\n",p[m-1]);
    delete []p;
    return 0;
}
搜索更多相关主题的帖子: include 正整数 
2011-11-15 22:36
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
收藏
得分:0 
回复 2楼 czz5242199
改成qsort吗?你试过没?
2011-11-15 22:44
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
收藏
得分:0 
#include<iostream>
#include<cstdlib>
using namespace std;
int cmp(const void *a,const void *b)
{
    return *(int *)a - *(int *)b;
}
int main()
{
    int i,m,n;
    int *p = new int[n];
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
        scanf("%d",&p[i]);
    qsort(p,n,sizeof(p[0]),cmp);
    for(i=0;i<m-1;i++)
        printf("%d ",p[i]);
    printf("%d\n",p[m-1]);
    delete []p;
    return 0;
}
2011-11-15 23:03
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
收藏
得分:0 
大虾们,弄一个高效的算法吧。。。。。。。。
2011-11-15 23:09
cb_1212
Rank: 1
等 级:新手上路
帖 子:126
专家分:5
注 册:2011-4-28
收藏
得分:0 
回复 8楼 laoyang103
额额 看不懂。。。我改成qsort排序后通过了。。但是效率好低诶。。。
2011-11-19 13:15
快速回复:超时了!!!怎么弄啊????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024437 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved