我想复习一遍算法,而且想全部实现一遍,请问使用 ruby 和 c 哪种语言更合适一些?
可以的。你强制自己只使用 Pseudo language 允许的语法就可以了。for, while, if 等等,用一下 each 也是可以的,再复杂的不用就是。
练完了记得把思路调回来,不然以后写的 ruby 代码会比较难看,哈哈。
@shangrenzhidao 不用这么客气 :) 我见识有限,算法也比较弱,实际中应用具体算法的机会很少。但我觉得算法书里面分析问题和解决问题的思路还是经常可以用到的。
之前其实一直在找用 ruby 实现 data structure 和基本算法的书,http://w3.cs.jmu.edu/spragunr/CS240/ConciseNotes.pdf 这本还比较 match,另外 crack the coding interview 里的所有习题都有 ruby 的解答 https://github.com/gaylemcd/ctci
Ruby 写算法当然没有问题了。这里有一本算法书,里面所有的算法实现都是基于 Ruby 写的:http://www.cleveralgorithms.com
觉得 ruby 写算法没什么优势罢了。 比如没 for,对于算法这种东西,each 什么的不如 for 好用。
没觉得指针是必要的,很多学校的算法都是用 Java 讲的。有本 c 的数据结构,也没怎么见到指针。
#21 楼 @shangrenzhidao 只能说是用 C 写个链表需要指针。
其它语言里面,只要有类似指针或者引用的机制,就都可以写。
例如 coffeescript/javasctript,没指针,但一样可以实现二叉树: https://gist.github.com/dorentus/9415726
(注:上面的 gist 其实是我给 http://www.codewars.com/kata/527c1fc78699012e43000cc8 的实现,这题目的需求描述很长,简言之就是用实现一个 binary search tree with immutable nodes。)
#21 楼 @shangrenzhidao java 就没有指针这个概念。。。
指针可以被“隐藏”起来。可以尽可能少的暴露出来。数据结构与算法分析 就是这样。