经典高斯算法,一起学习数据结构和算法吧!
为什么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
经典高斯算法,一起学习数据结构和算法吧!相关推荐
- 数据结构稀疏矩阵的加法十字链表_学习数据结构和算法的框架思维
----------- 通知:如果本站对你学习算法有帮助,请收藏网址,并推荐给你的朋友.由于 labuladong 的算法套路太火,很多人直接拿我的 GitHub 文章去开付费专栏,价格还不便宜.我这 ...
- 在Object-C中学习数据结构与算法之排序算法
笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳. 目录 选择排序 冒泡排序 插入排序 快速 ...
- 如何抓住重点,系统高效地学习数据结构与算法?
你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书.正是这个原因,让很多初学者对这门课望 ...
- labuladong的算法小抄_学习数据结构和算法的框架思维
----------- 通知:如果本站对你学习算法有帮助,请收藏网址,并推荐给你的朋友.由于 labuladong 的算法套路太火,很多人直接拿我的 GitHub 文章去开付费专栏,价格还不便宜.我这 ...
- 如何正确学习数据结构、算法这门课?
你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书.正是这个原因,让很多初学者对这门课望 ...
- 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了【ZT帅地】2020-3-7
https://blog.csdn.net/m0_37907797/article/details/104029002 由于文章有点多,并且发的文章也不是一个系列一个系列发的,不过我的文章大部分都是围 ...
- 学习数据结构和算法前瞻
我并非计算机科班出身,以前只对C.java.Matlab.Python语言有粗略的了解,以前写代码的时候只会考虑功能能实现就行了,并不考虑性能方面的问题,对数据结构与算法从未学习过,更不了解什么时间复 ...
- 02如何抓住重点,系统高效地学习数据结构与算法?
以下内容总结自极客时间王争大佬的<数据结构与算法之美>课程,本文章仅供个人学习总结. 什么是数据结构?什么是算法? 从广义上讲,数据结构就是指一组数据的存储结构.算法就是操作数据的一组方法 ...
- 数据结构与算法深入学习_我最喜欢的免费课程,用于深入学习数据结构和算法...
数据结构与算法深入学习 by javinpaul 由javinpaul Data structures and algorithms are some of the most essential to ...
- 为什么我要现在复习学习数据结构和算法
前言 最近人工智能,深度学习特别的火,做为一个软件开发者来说,我们应该对行业形势保持足够的敏感度,同时面对变化我们结合自身情况找准自己的学习方向. 我对人工智能有着极大的兴趣 说实话作为一个开 ...
最新文章
- python 基础 1.2--pycharm 的安装及使用
- HTTPS协议原理分析
- 从上千篇论文脱颖而出,支付宝论文凭什么获得WWW2020评委认可?
- SQL——快速定位相关的外键表
- Windows搭建SonarQube_Mysql
- js 将多个对象合并成一个对象
- 视觉中国网站恢复试运营 此前曾两次遭整改
- 关于运放电路放大倍数的计算
- winrar解压器_今日软件 | 马冬梅下载器、微软OFFICE、安卓超级备份、安卓原生启动器、高颜值音乐播放器、WinRAR、雷鸟下载、动态壁纸...
- [ARM-assembly]-ARMV8-A64指令编码介绍
- 串口转以太网关键技术
- dwf怎么合成一个_油菜素内酯合成基因DWF1、DET2影响毛白杨木质部形成
- 为弹性云服务器申请和绑定弹性公网IP
- MAME模拟器debug帮助文档汉化二(常规指令)
- 使用Firefox+Tor+FoxyProxy+Noscript+IETab进行安全自由的网上冲浪
- VS2019未定义标识符detect该怎么解决
- mshtml与System.Windows.Forms.HtmlElement
- 华为云区块链三大核心技术国际标准立项通过
- 【转载】国家集训队论文分类
- SpringMVC 程序开发
热门文章
- Mac下使用Wine安装Xshell 4和Xftp 4
- toString,toLocaleString,valueOf的不同
- 开发者需要知道的有关软件架构的五件事
- json省市区城市级联
- 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...
- snappy 在linux安装及使用
- 生成器模式(Builder)解析例子
- vue-框架模板的源代码注释
- Linux文本过滤与处理命令
- document.location的用法实例(摘抄自博客园--KoMiles,自己学习的时候记录一下)...