免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 流川
打印 上一主题 下一主题

[算法] 常用算法设计方法(转贴) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-11-04 16:06 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

注明出处(或者声明原作),给你加精。

论坛徽章:
0
12 [报告]
发表于 2004-11-08 17:54 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

这么好的帖子竟然没人顶??

我可是辛辛苦苦找出来的,献给CU的大伙

竟然这么冷清,这不是打击我的积极性嘛?     

论坛徽章:
0
13 [报告]
发表于 2004-11-09 14:58 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

再增加一道:递归题->;求迷宫

  1. #include <stdio.h>;

  2. #define m 6  //6行
  3. #define n 8  //8列
  4. int        maze[m+2][n+2]={
  5.                 {1,1,1,1,1,1,1,1,1,1},
  6.                 {1,0,0,1,1,0,1,0,1,1},
  7.                 {1,1,0,0,1,1,0,0,0,1},
  8.                 {1,0,0,0,0,0,0,1,1,1},
  9.                 {1,1,1,0,1,1,0,0,0,1},
  10.                 {1,0,0,0,0,0,1,0,1,1},
  11.                 {1,1,0,1,0,0,0,0,0,1},//最后出口为(6,8)
  12.                 {1,1,1,1,1,1,1,1,1,1}};
  13. int mark[m+2][n+2];
  14. int move[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//东南西北四个方向
  15. int SeekPath(int x,int y);
  16. void main(void)
  17. {
  18.         int i,j;
  19.        

  20.         for(i=0;i<m+2;i++)
  21.                 for(j=0;j<n+2;j++)
  22.                         mark[i][j]=0;
  23.         mark[1][1]=1;//入口标记置为1
  24.         if(SeekPath(1,1))
  25.                 printf("(1,1)\n");//最后返回入口处
  26. }
  27. int SeekPath(int x,int y)
  28. {
  29.         int i,g,h;
  30.         if( (x==m) && (y==n) )
  31.                 return 1;
  32.         for(i=0;i<4;i++)
  33.         {
  34.                 g=x+move[i][0];//下一个位置的行坐标
  35.                 h=y+move[i][1];//下一个位置的列坐标
  36.                 if( (maze[g][h]==0)&&(mark[g][h]==0) )
  37.                 {
  38.                         //下一个位置可通行,同时没有被试探过
  39.                         mark[g][h]=1;
  40.                         if(SeekPath(g,h))
  41.                         {
  42.                                 printf("(%d,%d),",g,h);
  43.                                 return 1;
  44.                         }
  45.                 }
  46.         }
  47.         if((x==1)&&(y==1))
  48.                 printf("No path!\n");
  49.         return 0;
  50. }
复制代码

论坛徽章:
0
14 [报告]
发表于 2004-11-09 16:18 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

晕!!!

不应该过分追求算法!!!

小心变成只会写算法,不会写软件的人。(我感觉某些论坛里的某些人已经变成这样了 :) )。

想写好程序,还有更多其他的东西需要修炼。

论坛徽章:
0
15 [报告]
发表于 2004-11-24 13:41 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

void  pnext(int *a,int k)函数有问题吧!计算出的N的阶乘都是1

以下是我改的
void  pnext(int *a,int k)
{
        int *b, m=a[0], i, r, carry;
        b=(int * ) malloc(sizeof(int)* (m+1));

        for ( i=1; i<=m; i++) b=a;

        carry = 0;
        for (i=1; i<=m; i++)
        {
                r = a * k + carry;
                a = r % 10;
                carry = r / 10;
        }
        if (0 != carry) a[++m] = carry;

        free(b);
        a[0]=m;
}

论坛徽章:
0
16 [报告]
发表于 2004-11-25 11:37 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

ft,这也是算法
原帖由 "流川" 发表:
增加一道题:穷举法

题目:
2.某射击队员总共射10枪,总环数89,每次射击的环数为0-10,请输出所有的情况:
第一种情况:第一枪:第二枪:。。。第十枪:
第二种情况:第一枪:第二枪:。。。第十枪:

论坛徽章:
0
17 [报告]
发表于 2004-11-25 17:55 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

我看算不得都是常用算法,个别几个还能用到,其它很少用到!
字符串有关的常见排序,搜索算法一个也没有!甚至经典KMP也是提都没提!
基本上没用!不过还是勉励一下楼猪!

论坛徽章:
0
18 [报告]
发表于 2004-12-01 20:46 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

能帮帮我吗?我们要考试了,老师留了11道题,让我们分成小组做题.我分得了两道,可是我算法真得学得一塌糊涂,能帮我看看这几道题吗,谢谢.了

1.已知数列A[1……n]和Y[1……n]为两个已排好序的数组,设计一个O(lgn)的间的算法,找出X和Y的2n个数的中位数。
2.设是n个元素的数组,对任意元素x,设s(x)={i/T=x},当︱s(x)︳>; n/2时,称x为T的主元素。
a.设计一个O(nlgn)的算法
b.设计一个O(n)的算法

论坛徽章:
0
19 [报告]
发表于 2004-12-23 14:22 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

靠,宝贝阿,这可是!

论坛徽章:
0
20 [报告]
发表于 2004-12-23 18:35 |只看该作者

常用算法设计方法(转贴)->强列要求加精!

Good
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP