| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 824 人关注过本帖, 1 人收藏
标题:请教一个问题更优的算法
取消只看楼主 加入收藏
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
结帖率:100%
收藏(1)
已结贴  问题点数:10 回复次数:4 
请教一个问题更优的算法
我个人是这样想的:
    先将要输入的所有坐标存到一个结构数组(结构含有序号,横坐标,纵坐标)中,然后再遍历所有结构数组,对每个结构按x,y的情况用选择排序法进行排序,最后再遍历所有结构数组依次输出其中的序号。但觉得这样做既耗时间有耗内存,请问各位大神能没有更好的思路或解法,麻烦指点一下,谢谢

这是题目的内容:
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册







-------------------------------------------------------------------------------------------------------------------------------------------------------

[ 本帖最后由 ma815841356 于 2015-5-10 16:07 编辑 ]
2015-05-10 15:13
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
收藏
得分:0 
回复 3楼 yu1543054075
你这样单单交换它们的序号而没有让它们的x,y一起随着交换的话,会导致后面的比较中x,y与它此时的序号不对应。
2015-05-10 20:02
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
收藏
得分:0 
回复 4楼 wmf2014
你好,这是我自己写的代码,但提交后是Time Limit Exceeded ,麻烦指点一下其中可以优化的地方,谢谢

#include<stdio.h>
#include<stdlib.h>
struct zuobiao
{
    int xuhao;
    int x;
    int y;
};

int main()
{
    int n,i,t;

    struct zuobiao *p;

    scanf("%d",&n);

    p=(struct zuobiao*)malloc((n+1)*sizeof(struct zuobiao));

    for(i=1;i<=n;i++)
    {
        scanf("%d%d%d",&(p+i)->xuhao,&(p+i)->x,&(p+i)->y);
    }

    for(i=1;i<n;i++)
        for(t=i+1;t<=n;t++)
    {
        if(((p+i)->x)>((p+t)->x)||((p+i)->x)==((p+t)->x)&&((p+i)->y)>((p+t)->y))
        {
            p[0]=p[i];
            p[i]=p[t];
            p[t]=p[0];
        }
    }

    for(i=1;i<=n;i++)
        printf("%d ",(p+i)->xuhao);

    printf("\n");
   
    return 0;
}
2015-05-10 23:53
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
收藏
得分:0 
回复 10楼 beyondyf
恩恩,谢谢你的指点
2015-05-12 09:19
ma815841356
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-5-3
收藏
得分:0 
回复 2楼 wmf2014
谢谢你的指点
2015-05-12 09:25
快速回复:请教一个问题更优的算法
数据加载中...
 
   



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

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