最近刚好有在指导一些学生练习,可以来回应一下这个问题
一般最常见语言有三个:C, JAVA, Python
也是最容易找到范例 code 的三个语言
各有不同优点,可以看你的状况选择
首先,如果未来有一天
有想挑战比较大平台的算法竞赛 (FB, Google 或其他的线上竞赛)
C 与 JAVA 会是比较好的选择
C 就效能王者,JAVA 得利于伟大的 JVM 效能也很扛
而 Python 真的在一些情境下会过慢,搞不好你时间复杂度正确最后还没过...
加上还有递回深度被卡的问题(有些技巧能开大,但总归是不好用)
另外网络上有听过一些面试官觉得你都在学习算法这门斤斤计较效率的学问了
还用 Python 这么"慢"的语言未免有点好笑
但... 我自己身边是从没听过不给用 Python 解题的...(有版友听过可以补充)
所以我自己对于目前仅想先入门的人,还是会推荐 Python
写起来真的硬是可以少别人很多行,又易学,实用性也广,是个顺便学会不吃亏的语言
其特殊的 [] 表示法练熟的话,很多循环都省了,也更好懂
当你想题目已经想到头很痛时,起码语言上可以让你舒服一点点
且该有的基本工具,如 map, set, heapq, OrderedDict 等也都还算齐全
Leetcode 上的题基本上写法对都会过(极少遇到卡 Python 的,出现还会被炎上抗议XD)
另外有个隐形的好处(或坏处?)是 Python 内建大数运算
所以你一开始练习可以不用思考 int, long, double 适用范围这些事情
就假想数字可以无限大,给他直线干过去就搞定
当然坏处就是... 你少了这方面的知识,被问到会挂
至于 JAVA 跟 C 比较的话
JAVA 在一般网站开发服务器比较泛用,C 则是韧体方面较泛用,看你职业选择
当然,即使不考虑职业,这两个语言本身也仍然很有学习的价值
不过 C 在函数传值与传址的定义上与目前大多主流语言不同
要先把这块搞清楚,以免变量被傻傻复制好几次都不知道
而 C 有个很特殊的好处是可以用 typedef & define 创造一堆简写给自己用
所以其实是可以写的简洁的,但初学者当然不建议这样搞, 毕竟别人很难看懂
最后,其他常听到的语言在算法练习上:
Javascript: 新手不推荐,主要少了一些重要的基础物件与函式库,得懂得自己造
Ruby: 优缺点跟 Python 类似,但范例 code 远少于 Python
C#: 优缺点跟 JAVA 类似,但同样范例较少
Go: 我不会写所以不敢说,等版友补充了