① 算法该用哪种语言编写
算法的表示可以是自然语言,流程框图,ns图和程序语言。
但自然语言有歧义
程序设计语言表示后可以运行检查
② 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去学习这些东西,需要处理太多跟问题本身无关的事情了。
③ 复杂算法一般用什么语言实现
复杂算法一般用c语言,或者c++语言实现。
复杂算法的复杂性是对算法效率的度量,是评价算法优劣的重要依据。时间复杂性是指算法中包含简单操作次数的多少,是算法运行时间的相对度量。要求用计算机解决的问题越复杂,规模越大,算法分析的工作量也越大。
复杂算法指针:
复杂算法如果一个变量声明时在前面使用*号,表明这是个指针型变量。换句话说,该变量存储一个地址,而则是取内容操作符,意思是取这个内存地址里存储的内容。指针是C语言区别于其他同时代高级语言的主要特征之一。
复杂算法指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
复杂算法指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
④ 机器学习算法用什么软件
机器学习算法用的软件:机器学习新手可以选择以下算法软件:线性回归、逻辑回归、线性判别分析、分类和回归树、朴素贝叶斯、K-近邻算法、学习向量量化、支持向量机、Bagging和随机森林、Boosting和AdaBoost。
⑤ 算法的工具有哪些
你说的应该是算法描述的工具吧。
流程图工具
1、Visio很好用,很强大,微软出的,水平好的可以用它制作出任何东西来(水平一般的就会做得比较难看,这和微软风格有关,默认的都没啥美感);
2、EDraw(亿图),又强大又好用,很容易上手,做出来的东西也漂亮,功能也符合大多数的流程图需求,还能导出多种格式(位图和矢量都可以);
3、Axure,这个主要是用来进行软件原型线框设计的,同时具有流程图功能,特点是非常简洁易用,如果作很单纯的说明性的流程图(注重功能讲解的),用这个很方便。
⑥ 算法的描述可以采用什么
如下:
1、用自然语言描述算法
前面关于欧几里的算法以及算法实例的描述,使用的都是自然语言。自然语言是人们日常所用的语言,如汉语、英语、德语等。使用这些语言不用专门训练,所描述的算法也通俗易懂。
2、用流程图描述算法
在数学课程里,我们学习了用程序框图来描述算法。在程序框图中流程图是描述算法的常用工具由一些图形符号来表示算法。
3、用伪代码描述算法
伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法的工具。它不用图形符号,因此,书写方便、格式紧凑,易于理解,便于向计算机程序设计语言过度。
算法的特征
输入:一个算法必须有零个或以上输入量。
输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。
明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。
有限性:依据图灵的定义,一个算法是能够被任何图灵完备系统模拟的一串运算,而图灵机器只有有限个状态、有限个输入符号和有限个转移函数(指令)。而一些定义更规定算法必须在有限个步骤内完成任务。
⑦ 写算法题为什么大多用C语言而不用java
首先c语言的效率比较高,执行起来比较快
其次算法有不少需要对浮点的数据做定点的截断,这个用c语言比较通用。同时代码量相对来说不大。
另外不少算法在芯片上面去实现,很多芯片验证环境同时支持c语言的参考模型。