算法的意义、如何学习算法和算法的复杂度

14天阅读挑战赛
努力是为了不平庸~
算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!记录下那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~

🥲 🥸 🤌 🫀 🫁 🥷  🐻‍❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 🫑 🫓 🫔 🫕 🦤 🪶 🦭 🪲 🪳 🪰 🪱 🐻‍❄️ 🫐 🫒 🫑 🫓 🫔 🫕

 ♔博主昵称:�欢快↑㎡

🕍博客主页�欢快↑㎡的博客_CSDN博客-学习注意点杂记,BUG集,安装教程领域博主

🥗感谢点赞🤞🏻评论

⚇很方便的在线编辑器:Lightly

相信吧!🤜🏻我们很优秀,还可以更加优秀,加油!🌼让我们一起在写作中记录巩固学习吧!


为什么要学习算法

不乏有一些算法爱好者,比较喜欢算法

有些算法可以给我们的实际问题带来更加简洁快速的的得到我们想要的结果,可以优化性能(当然任何一种解决问题的方案都是算法,但是算法与算法之间在适应不同场景会有不同的性能)

对于工作,知道一些算法是大有裨益的,对于从事架构师大数据方面的对算法要求会更加高一些


如何学习算法

趣味算法的作者小玉老师告诉我们,学习算法,要先去了解算法,等对算法有了一定的熟悉度,我们再去实践,出错的效率会更加少,反之,对于初学者来说,出错多了就容易打击自信心。

了解算法可以通过书籍或者视频。

然后可以刷题(想要在算法方面比较厉害,可以做一个两年的规划)

刷题有很多网站,诸如力扣、牛客网等(参加蓝桥杯比赛也是不错的,会有在线的编程练习)

也可以参加比赛,学生和上班族都可以参加相应的比赛


算法知识点

算法的特性、算法的复杂度


算法的特性

  • 有穷性
  • 可行性
  • 确定性
  • 输入和输出

好的算法的特性

  • 正确性
  • 易读性
  • 健壮性
  • 高效性
  • 低存储性

其中低存储是算法所需要的存储空间大小(被称为空间复杂度)

算法的复杂度分类

  • 时间复杂度
  • 空间复杂度

算法例题

写一个算法求出以下序列的和

解题思路一

我们可以先写一个-1的n次方的方法(pow方法),然后用for循环一直求和,如图:

解题思路二

如图所示,我们将其两两组合,其和为0,我们只需要判断n是奇数还是偶数,是偶数则和为0,奇数则和为-1

代码如下

对比

由此可见解题思路一的算法会被循环执行n次(算法复杂度为O(n)),二解题思路二的算法只会被执行1次(一般来说执行一次效率也会越高)(算法复杂度为O(1))

算法复杂度效率比较

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

�欢快↑㎡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值