| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1848 人关注过本帖
标题:我是新人(小C),下面和大家来探讨个问题,分大大的有哦!!
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
衡量算法优劣的一个硬性指标是时间复杂度(随着内存空间越来越大,空间复杂度已经不是最重要的指标了),一般在算法课程的第一章讲的就是这个。

建议各位把基础打牢固了。

我不是个喜欢空谈的人,送各位一段代码,有兴趣的请亲自执行一下,分析一下。看看1万阶的方阵第1234行4321列的值是多少。
程序代码:
#include<stdio.h>
#include<math.h>
#define PI2      6.283185307179586476925286766559
#define PI_4     0.78539816339744830961566084581988
#define PI3_4    2.3561944901923449288469825374596
int f(int n, int i, int j)
{
    double R, r, L, S, x, y, d, a, ma;
    int sa;
    R = (n - 1) / 2.0;
    x = j - R;
    y = i - R;
    r = fabs(x) > fabs(y) ? fabs(x) : fabs(y);
    L = R - r;
    S = 4 * L * (n - L) + 1;
    d = sqrt(x * x + y * y);
    if(d < 0.5) return (int)(S + 0.5);
    a = PI3_4 + ((y >= 0) ? acos(x / d) : -acos(x / d));
    if(a < 0) a += PI2;
    sa = (int)(a / PI_4);
    ma = a - sa * PI_4;
    if(!(sa & 1)){ sa += 1; ma -= PI_4; }
    return (int)(S + r * sa + d * sin(ma) + 0.5);
}
int main()
{
    int i, j, n;
    printf("输入方阵阶数:");
    scanf("%d", &n);
    for(i = 0; i < n; i++, putchar('\n'))
    for(j = 0; j < n; printf("%5d", f(n, i, j++)));
    return 0;
}

布置一道作业,请回答这段代码的时间复杂度是多少。
收到的鲜花
  • cuijingchun2012-01-19 11:14 送鲜花  5朵   附言:能给本算法的基础书看看吗,我也是才学C语言 ...

重剑无锋,大巧不工
2012-01-18 22:53
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 31楼 beyondyf
云山雾罩

梅尚程荀
马谭杨奚







                                                       
2012-01-19 07:37
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呵呵,慢慢看。
这样的方阵每个元素的位置与值之间存在一一对应的函数关系。上面的代码是位置到值的映射关系,是从解析几何的角度推导的,也许还有其它更简单的映射方式。
有兴趣的朋友可以偿试写一下值到位置的映射关系,这个比较简单。

重剑无锋,大巧不工
2012-01-19 09:30
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
回复 33楼 beyondyf
表示看不懂  杨大哥  我真的很佩服你

                                         
===========深入<----------------->浅出============
2012-01-19 09:56
cuijingchun
Rank: 3Rank: 3
来 自:黑龙江
等 级:论坛游侠
威 望:1
帖 子:108
专家分:186
注 册:2011-9-28
收藏
得分:0 
回复 33楼 beyondyf
能推荐有关算法的基础书籍看看吗,
PDF的就更好了, 手机支持

为自己喜欢游戏做一个自动打怪的程序QQ: 7325231    YY4350晚上编程课欢迎大家来听
2012-01-19 11:17
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 34楼 laoyang103
呵呵,将方阵的点映射到直角坐标系下,方阵中心与坐标轴心重合后观察各点值与坐标的关系。
改天给你个详细的推导过程

至于楼上兄弟,我没什么好推荐的,所有的算法书讲的都差不多,关键还得看个人的悟性及热爱程度。

重剑无锋,大巧不工
2012-01-19 12:14
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
有意思,我试试
2012-01-19 18:37
萧晴
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2012-1-19
收藏
得分:0 
头有点晕
2012-01-19 18:51
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:0 
回复 27楼 TonyDeng
额,说的好啊~说到我心里去了,呵呵!

算法,数据结构,windows核心编程.
2012-01-19 20:48
笑笑的花红了
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-19
收藏
得分:0 
    七楼,
2012-01-19 23:06
快速回复:我是新人(小C),下面和大家来探讨个问题,分大大的有哦!!
数据加载中...
 
   



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

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