14.1 Go数据结构
2024-10-09 02:01:49
14.1 Go数据结构
每一个程序都在学习十八般武艺
,学习语言、数据库、HTTP等技能。
而程序中的九阳神功
就是数据结构与算
,掌握了数据结构与算法,你的内功修炼就会有质的飞跃。
无论从事业务开发,测评代码性能还是资源消耗,还是架构设计,优化设计模式,还是玩转区块链,都必须搞定数据结构与算法。
只要掌握数据结构与算法,就能立于计算机的不败之地
。
Rob Pike的编程原则
与程序员们共勉:
- 你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。
- 估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。
- 花哨的算法在 n 很小时通常很慢,而 n 通常很小。花哨算法的常数复杂度很大。除非你确定 n 总是很大,否则不要用花哨算法(即使 n 很大,也优先考虑原则 2 )。比如,解决常见问题时,最简单的树——二叉树(binary tree),总是比那些复杂的树(AVL树,伸展树(splay tree)和红黑树、B-树(B-tree),多叉树(trie))来的高校。
- 花哨的算法比简单算法更容易出 bug 、更难实现。尽量使用简单的算法配合简单的数据结构。只要掌握了数据结构中的四大法宝,就可以包打天下,他们是:array 、linked list 、hash table、binary tree 。这四大法宝可不是各自为战的,灵活结合才能游刃有余。比如,一个用hash table组织的symbol table,其中是一个个由字符型array构成的linked list。
- 以数据为中心。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法。
1.1. 数据结构/算法
网站如何支撑高并发,海量吞吐情况下服务器怎么还能坚若磐石?服务器集群技术,数据库优化、缓存技术又是怎么被大神设计出来的?
最新文章
- 浅析.NET泛型
- org.dom4j.documentexception异常
- CSS3弹性伸缩布局(一)——box布局
- Java 应用发布后,需要关注的7个性能指标
- 记一次ios使用OAuth 2.0写的接口获取token的小错
- 【转】无废话WCF系列教程
- Sqlite 错误码
- DCI架构
- python实现的文本编辑器 - Skycrab - 博客频道 - CSDN.NET
- grails一对一关联关系
- Java并发工具类 - CountDownLatch
- Servlet的三个域对象
- Selenium之Selenium IDE
- 正则表达式处理BT的html嵌套问题
- 公众号第三方平台开发 教程六 代公众号使用JS SDK说明
- JavaScript大杂烩4 - 理解JavaScript对象的继承机制
- 我的图片爬虫demo
- Android App Crash, send email to author
- test20181017 B君的第一题
- rabbitmq的延迟消息队列实现