当前位置:  开发笔记 > 编程语言 > 正文

编写代码仍然被认为是算法表示?

如何解决《编写代码仍然被认为是算法表示?》经验,为你挑选了1个好方法。

我刚刚在测试中丢失了50%的答案,因为我在我的期中编写了代码而不是算法,让我从A变为C.编写代码仍然被认为是算法表示吗?

维基百科:算法表示(因为编程风格几乎是基于共识的)

编辑:好的,让我明确几点:

    测试要求伪代码,我们从未在课堂上"定义"; 我们刚刚为我们的算法写了英文.

    它是一个Java类,并用Java方法和注释写出整个解决方案.所有这些都是手写的,写出来的时间比伪代码要长.我认为会更清楚.

    我通常不会对这些事情提出问题,但这是A和C之间的区别,我有一个奖学金骑在我的考试上.

    最后,我发布这篇文章有两个原因:

    4.1我想展示现代编程社区对伪代码和算法表示的看法.

    4.2我想知道"现实世界"中可以接受的东西; 我已经编程了一段时间,但我希望能够尽快为开源项目做贡献,而且我不想踩到任何人的脚趾.(虽然我很确定这个话题几乎没有机会进入现实世界).

再次感谢任何帮助/建议.



1> Kent Fredric..:

您可能想举个例子.如果您的代码过多地关注不属于算法的语言细节,那么可以理解,可以说您的算法混合了非算法,导致结果不正确.

我觉得这个推理,整个学习的目的是让你明白这个概念,而不是弯腰并勾选所有正确的方框.

可以教一台计算机通过大学,但计算机还不能教会实际思考并应用知识.

吃饭和反刍的心态是我从未毕业的原因.


关于你最近的评论,它对于实现伪代码的重要性是不确定的.它中通常有重复使用的术语,但它不是严格的语言,而不是英语(否则它将一种编程语言,可以逐字解析和执行)

伪代码的重要性在于充实系统的逻辑部分,而不必过分担心超出"它有意义"的语法

通常这可以使伪代码更简洁 ,更易理解.

伪代码也不依赖于读者理解语言中的"魔术语法"以便处理它,他们需要理解的是所使用的术语.

例如,如果你要给普通人一个perl算法,那么大多数人都会死于恐怖,因为他们没有看到线路噪声的碎片.

而:

sub foo { 
   my @args = @_ ; 
   my( $a, $b )=(@args[0],@args[1]); 
   for( @{ $a } ){
       $b .= $_ ; 
       s/id//g; 
   }
   return [$b,$a];
}

对于精通perl的人来说可能会有一些连贯的意义,对于普通的代码阅读器,他们得到的只是"你刚才说的到底是什么"的回应.记录它也没有多大帮助.

| there is a subroute foo which can take a list of strings, and a default string, 
\-  which then iterates all items in  that list, 
| \-  and for each item in that list 
|     1. appends the contents of that item to the end of the default string
|     2. removes all instances of the string "id" in that item
| 
 \ and returns a list, which contains 
    1. the concatentated default string 
    2. the modified input list 

突然间,它变得不那么暧昧,更多的人可以理解它.

因此,编写算法的一半练习是"不仅要证明你理解它,而且还必须证明你可以向不了解问题的其他人解释你的推理",这是至关重要的练习.你需要的能力.如果你无法沟通你所做的事情,没有人可以使用它.

代码中也存在这个令人讨厌的小问题,这在算法中是不存在的,那就是代码看起来可能正确,但可能不会按照你的想法做到,如果做得不对,你就不要没有意识到,人们阅读代码进行逆向工程,它会污染它并复制一个破碎的算法.不好.人类形式的算法更好地翻译'这就是我想要它做的'

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有