为什么80%的码农都做不了架构师?>>>   

对于想提高编程技巧的人,数据结构和算法是必修的,举一个最经典的故事向新手们说明算法的伟大。

话说很久很久以前。。。,一次数学课上,老师让同学们做一个算术:一个小时内算出1+2+3.......+99+100的结果,有一位同学,叫做高斯,只用了不到20分钟就算出了结果,老师很惊讶,于是向他请教他是怎么算的。原来,他发现了这些数字有一个规律:第一个数字加上最后一个数字等于101,第二个数字加上倒数第2个数字结果也是101,即:1+100=101,2+99=101,3+98=101......。以此类推,一共就得出50个101,那这个算术题的结果自然就是50*101=5050。

根据规律得出一个公式:n(n+1)/2

就是从1一直加到n的结果

按照传统方法,我们就是傻呼呼地去计算1+2=3,3+3=6,6+4=10......=5050,接下来我们用程序来表示出传统方法与高斯算法的差别

var count,max int
//要加到100
max = 100//传统方法
count = 0
for i:=1;i<=max;i++ {count = count + i
}
fmt.Print(count)//============= 我是不羁的分隔线 ================//高斯算法
count = max(max+1)/2
fmt.Print(count)

不难看出,传统方法计算,计算机要做100次循环,而高斯算法只需要一次计算!想像一下如果max=100000000呢?传统的方法就要循环100000000次计算操作,而高斯算法依然只需要一次计算!这就是一个天才算法的差距。

而通过学习数据结构,就会知道两种算法的复杂度为O(n)和O(1)。更深入的东西就需要大家一起去学习了,我也没那个水平,只是抛砖引玉,给未入门的新手讲些粗浅的东西。

转载于:https://my.oschina.net/yiqu/blog/382948

经典高斯算法,一起学习数据结构和算法吧!相关推荐

  1. 数据结构稀疏矩阵的加法十字链表_学习数据结构和算法的框架思维

    ----------- 通知:如果本站对你学习算法有帮助,请收藏网址,并推荐给你的朋友.由于 labuladong 的算法套路太火,很多人直接拿我的 GitHub 文章去开付费专栏,价格还不便宜.我这 ...

  2. 在Object-C中学习数据结构与算法之排序算法

    笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳. 目录 选择排序 冒泡排序 插入排序 快速 ...

  3. 如何抓住重点,系统高效地学习数据结构与算法?

    你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书.正是这个原因,让很多初学者对这门课望 ...

  4. labuladong的算法小抄_学习数据结构和算法的框架思维

    ----------- 通知:如果本站对你学习算法有帮助,请收藏网址,并推荐给你的朋友.由于 labuladong 的算法套路太火,很多人直接拿我的 GitHub 文章去开付费专栏,价格还不便宜.我这 ...

  5. 如何正确学习数据结构、算法这门课?

    你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书.正是这个原因,让很多初学者对这门课望 ...

  6. 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了【ZT帅地】2020-3-7

    https://blog.csdn.net/m0_37907797/article/details/104029002 由于文章有点多,并且发的文章也不是一个系列一个系列发的,不过我的文章大部分都是围 ...

  7. 学习数据结构和算法前瞻

    我并非计算机科班出身,以前只对C.java.Matlab.Python语言有粗略的了解,以前写代码的时候只会考虑功能能实现就行了,并不考虑性能方面的问题,对数据结构与算法从未学习过,更不了解什么时间复 ...

  8. 02如何抓住重点,系统高效地学习数据结构与算法?

    以下内容总结自极客时间王争大佬的<数据结构与算法之美>课程,本文章仅供个人学习总结. 什么是数据结构?什么是算法? 从广义上讲,数据结构就是指一组数据的存储结构.算法就是操作数据的一组方法 ...

  9. 数据结构与算法深入学习_我最喜欢的免费课程,用于深入学习数据结构和算法...

    数据结构与算法深入学习 by javinpaul 由javinpaul Data structures and algorithms are some of the most essential to ...

  10. 为什么我要现在复习学习数据结构和算法

    前言   最近人工智能,深度学习特别的火,做为一个软件开发者来说,我们应该对行业形势保持足够的敏感度,同时面对变化我们结合自身情况找准自己的学习方向. 我对人工智能有着极大的兴趣   说实话作为一个开 ...

最新文章

  1. python 基础 1.2--pycharm 的安装及使用
  2. HTTPS协议原理分析
  3. 从上千篇论文脱颖而出,支付宝论文凭什么获得WWW2020评委认可?
  4. SQL——快速定位相关的外键表
  5. Windows搭建SonarQube_Mysql
  6. js 将多个对象合并成一个对象
  7. 视觉中国网站恢复试运营 此前曾两次遭整改
  8. 关于运放电路放大倍数的计算
  9. winrar解压器_今日软件 | 马冬梅下载器、微软OFFICE、安卓超级备份、安卓原生启动器、高颜值音乐播放器、WinRAR、雷鸟下载、动态壁纸...
  10. [ARM-assembly]-ARMV8-A64指令编码介绍
  11. 串口转以太网关键技术
  12. dwf怎么合成一个_油菜素内酯合成基因DWF1、DET2影响毛白杨木质部形成
  13. 为弹性云服务器申请和绑定弹性公网IP
  14. MAME模拟器debug帮助文档汉化二(常规指令)
  15. 使用Firefox+Tor+FoxyProxy+Noscript+IETab进行安全自由的网上冲浪
  16. VS2019未定义标识符detect该怎么解决
  17. mshtml与System.Windows.Forms.HtmlElement
  18. 华为云区块链三大核心技术国际标准立项通过
  19. 【转载】国家集训队论文分类
  20. SpringMVC 程序开发

热门文章

  1. Mac下使用Wine安装Xshell 4和Xftp 4
  2. toString,toLocaleString,valueOf的不同
  3. 开发者需要知道的有关软件架构的五件事
  4. json省市区城市级联
  5. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...
  6. snappy 在linux安装及使用
  7. 生成器模式(Builder)解析例子
  8. vue-框架模板的源代码注释
  9. Linux文本过滤与处理命令
  10. document.location的用法实例(摘抄自博客园--KoMiles,自己学习的时候记录一下)...