算法 ruby 写算法是否可行

shangrenzhidao · 2014年06月26日 · 最后由 love93hate 回复于 2018年08月27日 · 10438 次阅读

我想复习一遍算法,而且想全部实现一遍,请问使用 ruby 和 c 哪种语言更合适一些?

C 有指针。。ruby 基本东西都给你写好直接用就是了。

#1 楼 @so_zengtao ruby 有没有相关的书籍?

差不多,c 更好一些。

#2 楼 @shangrenzhidao 复习算法 看算法导论吧 ruby 标准库都有算法集成 看 API

算法和指针其实有啥关系。。。

#4 楼 可能指针的问题不是很好处理,刚刚用 C 实现了一个 linkedlist. 太难了。

可以的。你强制自己只使用 Pseudo language 允许的语法就可以了。for, while, if 等等,用一下 each 也是可以的,再复杂的不用就是。

练完了记得把思路调回来,不然以后写的 ruby 代码会比较难看,哈哈。

#7 楼 @billy 嗯,说的很对呀。用 C 写的我想吐。

#7 楼 @billy 您觉得算法在实际开发中还重要吗

@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

算法是一种思想,不是语言的问题了

#12 楼 @lgn21st 怎么说呢,我个人觉得数据结构还是用 C 来学习,算法可以用像 Ruby 高效的语言。

#12 楼 @lgn21st 有些算法 ruby 是没法写的,比如 bitset。

#16 楼 @rasefon ruby 做算法原型很容易的,ruby 的整数具有任意长度的 bitset 的全部功能,利用 bitset 的算法直接用整数就可以了

#5 楼 @dorentus 指针可以把很多算法的结构清晰化啊

#17 楼 @luikore 但是不是真正意义上的 bit

觉得 ruby 写算法没什么优势罢了。 比如没 for,对于算法这种东西,each 什么的不如 for 好用。

没觉得指针是必要的,很多学校的算法都是用 Java 讲的。有本 c 的数据结构,也没怎么见到指针。

#20 楼 @yfractal 数据结构需要指针。比如用 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。)

#23 楼 @dorentus 没有指针,就没法做内存操作,或者很难做到高效。如果对效率有要求,写算法没法控制内存,除非是写玩具算法,不然是没法做到实用的。

#25 楼 @chanshunli 是的,作者是同一个人。

匿名 #27 2014年06月27日

#26 楼 @lgn21st 是同一本吧。正愁着没 Ruby 的算法书呢 😄 等等就去打印来

#21 楼 @shangrenzhidao java 就没有指针这个概念。。。

指针可以被“隐藏”起来。可以尽可能少的暴露出来。数据结构与算法分析 就是这样。

单写算法推荐 c

机器学习交易——如何使用回归预测股票价格?最近翻译了一篇文章,本人对机器学习应用在量化投资上很感兴趣,希望可以和社区大神一起交流学习。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号