不懂算法的程序员可以走多远?

8482127d64a8b4ff59ef7912feadea93.png

点击蓝字 关注我们

d418c14b939c66d2265f6bc15517dcc5.png

之前在和朋友聊天时讲到,为什么算法能那么难?

在程序员圈里,有一个不成文的共识,大多程序员都认为算法是个硬骨头,真的很难啃!哪怕啃会了,也不一定会举一反三。

0bfe8285376ab6bef8c60dbed3812324.png

在网上,我看到很多小伙伴,一上来就开啃《算法导论》,这种方式真的大错特错!最离谱的是,很多人看了这个本书,啥也没看会3dd26b610f63cc03d2638646dde490b0.png

a726f83dde276c33b3fc7c9cc6c21f64.png

这本书的确经典,但是它真的不适合新手!对于基础薄弱的小伙伴,可能拿起书就想放下,开始摆烂。所以学习算法,必须要用对方法。

三分学习,七分练习才是王道!

df4b102885d1da18c495e2638d5d7c61.gif

之前的文章中,我也讲到了算法学习的方法,想要学习算法的,可以移步以下文章:

☟戳戳即可阅读☟

学习算法先看算法书还是先刷题?小心学废了!

算法面试和蓝桥杯备赛不用愁!高效搞定数据结构与算法!

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。

不同的算法可能用不同的时间,空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

著名的计算机科学家沃思提出公式:程序=数据结构+算。其中,算法是解决“如何操作数据?”的问题,数据结构是解决“如何描述数据?”的问题。

一个算法需要具有 5 个属性

  • 确定性

  • 可行性

  • 有穷性

  • 输入性

  • 输出性

想要提高算法的效率,就需要减少程序复杂性(圈复杂度V(G))。

02be3fe672411554f1a4dd8c3527a741.png

例如鸡兔问题:

989b3b4dd561d790ac2e5530b2a626d4.png

共有三种解题思路:

2566a6a7c2d8dc7e6247c8cfc95a4af3.png

这里,我整理了Python 数据结构与算法的学习知识点,小伙伴们也可以参考一下~

33115fd34fc1a84cb36fac1dbc68eabb.png

e739a44ee82e9bba21327929097b7136.gif

为了更方便小伙伴们学习算法,并巩固、练习知识点,我将会定期开设【算法学与练】专栏,供大家更好学习&刷题

如有需要,你还可以加入蓝桥云课专属代码交流学习讨论哦~

166c739b209faef4df406010ab48c4dd.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值