1.编程工具
作为一个前端工程师,比较热门的编程工具还是vscode,这个工具不算大,插件资源丰富,适合各类编程语言。
本身这个软件的安装和使用教程也比较容易,大家直接去vscode 官网: https://code.visualstudio.com/下载安装就行了
使用的话这里推荐一篇博客吧:vscode使用大全
2.算法复杂度分析
我们写好一个算法后,如何去评价这个算法的好坏?这里用到的就是算法复杂度。
而算法复杂度又分为时间复杂度和空间复杂度,在计算机高度发展的今天,时间变得越来越宝贵,所以很多时候我们更看中时间复杂度,时间复杂度一般用大O表示法进行表示。
T(n) = O(f(n))
T(n)表示代码的执行时间,
n表示数据的规模,
f(n)表示每行代码执行的次数总和,因为这是一个公式,所以用f(n)表示。
公式中的O表示代码的执行时间T(n)与f(n)表达式成正比。
大O表示发的意义是告诉我们随着数据量n的增大,算法执行时间的增长情况。
比如O(n)的意思是就是随着数据量n的增加,运行时间线性变大。
for (let i =0; i++; i< n) {
consloe.log(i);
}
O(2的n次方)的意思是随着数据量n的增加,运行时间指数增加。
fib(n) {
if (n = 1) return 1;
if (n = 2) return 1;
return (fib(n-1) + fib(n-2));
}
常见的时间复杂度如下图:
空间复杂度类似
3.leetcode
力扣是一个为全球程序员提供IT技术职业化提升的平台,提供了完善的在线判题服务、学习工具、社区讨论及模拟面试功能,全方位打磨程序员职业所需的核心技能。非常适合我们进行算法练习。
大家可以去官网进行练习,也可以在vscode上安装插件进行训练。直接在扩展商店搜leetcode,第一个就是了。安装好了后,点击左侧的leetcode图片进行登录,就可以开始刷题啦。
bug:先点击1启用中文版,然后点2进行登录