C,C++,MATLAB,Python,Go 哪个比较适合写算法

如题所述

仅仅就学习算法,还是C++/Java/C#最适合。

首先,没泛型的语言未必工作不好用,我司现在服务端代码几乎都是go,但是没有泛型,写通用的代码就是不好用。我用Go把半本《算法》实现了一遍,移植了Haskell 的 Parsec 库。这些代码大部分都在我团队的项目里实际使用。你要说 Go 有多熟练未必,但是要说它在语言功能上有多少坑我倒是挺熟悉。没泛型的话算法实现起来太坑人了,别的不说 float32/float64/int8/int16/int32/int64/int 这些数值类型你能都覆盖么?如果只是基于某一组有限的数据类型和问题领域实现一遍,用 go 倒是不错,它环境配置容易,不太依赖ide,但是对ide还是比较友好的,天然集成test,编译快速,模型简单,学习容易,可以说是我用过的静态编译型语言里最像动态脚本语言,最适合快速开发微型工具的。

其次,Python/Ruby 这类语言其实不太适合练习算法实现,它们太“高级”了。例如用Python的时候,你很难规避它的内置容器List和Dict,这些东西封装了太多东西,在学习的过程中容易被干扰。另外没有静态的类型控制,在学习过程中也会失去一些知识。倒不是就会导致你后半生这部分都不能自理,但是需要另外学习。

在我的经验,要学习算法,C++/C#/Java 仍然是比较好的选择,它们的泛型已经比较成熟,能够在学习中建立比较完备的知识概念。可以找到一些比较好的IDE用,我个人其实在工作中不怎么用IDE,但是算法学习的时候,有个不错的IDE可以帮你跟踪代码的运行过程,还能比较容易的做性能分析,这样就可以用动态、直观、形象的视角去理解和观察算法。这对学习非常有帮助。

如果只是在一个特定的领域做知识学习的工具,其实C++反而不算很难,C++的难度主要在于覆盖的领域太广泛,当你要做一个专业的C++程序员,要掌握的东西就太多了。

个人不太建议用C去学习这些东西,需要处理太多跟问题本身无关的事情了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-13
看需求. 如果十分追求速度那么直接选择C或C++即可; 否则可以选择matlab或py, 动态类型带自动内存回收的语言写起来可以不必太顾虑数据结构本身, matlab还自带很多数学工具写复杂算法会很方便. 而go是专门设计用于开发整个项目的, 速度和灵活性和另外几个相比高不成低不就, 并不很适合专门实现单个算法本回答被网友采纳

C,C++,MATLAB,Python,Go 哪个比较适合写算法
仅仅就学习算法,还是C++\/Java\/C#最适合。首先,没泛型的语言未必工作不好用,我司现在服务端代码几乎都是go,但是没有泛型,写通用的代码就是不好用。我用Go把半本《算法》实现了一遍,移植了Haskell 的 Parsec 库。这些代码大部分都在我团队的项目里实际使用。你要说 Go 有多熟练未必,但是要说它...

算法最好使用什么进行
算法最好使用matlab或者python进行,如果工程化的语言用C++。Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快...

python和matlab哪个更值得学
长期来看,Python的科学计算生态会比Matlab好。语言更加优美。另外如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。python作为一种通用编程语言,可以做做Web,搞个爬虫,编个脚本,写个小工具用途很广泛。二、matlab的优势 学术界大量使用matlab做仿真,...

全国大学生数学建模大赛需要学习什么软件啊
1、 C\/C++\/JAVA\/BASIC。随便会一种就可以,C的算法效率绝对比MATLAB高出很多,所以一般的算法还是用C实现吧。2、 MATLAB。很无敌的数学软件,不多介绍了,最好能掌握神经网络工具箱和遗传算法工具箱的使用方法。算法的话,它可以实现的的C\/C++也可以,用什么就看个人喜好了。3、 LINGO。很无敌的规...

数学建模的语言选择有什么问题?
C和C++的话个人感觉在数学建模比赛里面显得有点吃力,没有MATLAB好,当然如果本身C比较厉害的话,也可以用C来处理,不过强烈建议是MATLAB,因为MATLAB里面有不少很好用的模块,很多算法已经帮你做好了,不用自己再去写。如果用C的话有些算法要自己从新写,比较耗费时间,数模只有3天,而且这3天里面真正...

数学建模一般用哪种软件比较好?MATLAB是否有局限性
支持用多种语言书写,包括C,C++,JAVA,MATLAB,你只需对其中某种语言比较熟悉就可以在比较短的时间内写出模型文件并求解。如果你对这些都 不熟悉,那么有另两款软件GAMS\/AMPL,他们似乎是嵌入了很多高效的solver进去,然后用统一的比较直接的语法规则来表达模型,但缺点是可能需 要license,免费版本只能求解...

...开发的编程用什么语言比较多,Java 、C++、Python那种语言更多?_百度...
开发人工智能建议先从算法级开始。列出的四种语言均不太适合算法级开发,建议使用Matlab。如果有需要可以私信一些教程,涉及简单的神经网络搭建,还有模拟退火、PSO、SVM等这些比较经典的算法。

自动化专业编程学什么语言
Python是一种高效易学的编程语言,广泛应用于科学计算、数据分析、人工智能,以及自动控制系统、机器视觉和工厂自动化。C\/C++为底层系统级别的编程语言,被用于嵌入式系统、机器人控制和传感器网络。Java是一种流行的面向对象编程语言,具有高度可移植性和平台无关性,广泛应用于物联网设备端和服务器端开发,...

python和matlab哪个难
Python次要的优势:开源。你可以大量更改科学计算的算法细节。可移植性,Matlab必然不如Python,不过这方面需求一般不是很高。第三方生态,Matlab不如Python,比如说3D的绘图工具包,GUI,更方便的进行,使用GPU,Functional等等;长期来讲,Python的科学计算生态要比Matlab好。Python语言更加优美,如果有一定的...

量化投资中,MATLAB和python哪一个好
Matlab在矩阵处理方面的强大优势Python无法比拟,我曾经用Matlab和Python跑同一个算法,涉及到矩阵中Symbol求导。Python用的是Numpy,Sympy和Scipy,感觉Sympy中Matrix虽然功能强大,但是速度很慢,而且需要专注其中各种细节。如:其对Complex类型是无法自动expand的,常常出现(1+I)(2I+1)这种结果,这时需要...

相似回答