版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用算法思维来写程序程序=算法+数据结构深度思考比勤奋工作更重要深度思考比勤奋工作更重要算法无处不在,只是很隐蔽 专业性,时空复杂度分析,学会应用大欧记法。 大公司招聘算法考试的启发,他们的底线和节操。 隐蔽性,透过现象看本质,ACM队的启发。 我们大量视而不见的O(A*B)O(A+B)的错误,我们需要饿补。 TeamLeader的责任与工程师文化风气,鱼|渔。 代码中命名,风格之类的不同写法,可以宽容。 不能容忍的界限在于复杂度。再叨叨一遍 函数增长率,A+B没问题,A*B要严判监控结果O(N2)的危害性 O(N)的情况下,增加一台服务器,产能可以提高一倍。 (N/K)2当NK2时性能低于O(
2、N),假设N是100的话,需要10台服务器,才能低上一台 当101个数据,10台就比一台还慢。实际上我们数据远远超过100。这工具已经在用车,地面,团队,机酒等部门开始使用了。我们用车这边扫出上千嫌疑点,有一半甄别可优化。我们携程的代码中有大量Linq误用的地方,存在O(N2)问题,可以轻松优化到O(N)监控只能发现被引爆的地雷,更多的还隐藏在其中。O(N)的情况下,增加一台服务器,产能可以提高一倍。O(N2)的情况下,增加一台服务器,产能只能提高+1/N,因此增加多少服务器都解决不了算法的伤。这种浪费,好比妈妈给了我1万块,我撕掉了9900块,只剩100块。好比红十字会拿到了1亿,花100万
3、建了希望小学,其余9900万包养了郭美美。几种优化技巧 简单Equals问题,多利用哈希表ContainsKey的O(1)特性,打表一词的由来。 组合键问题,联合Key的设计制作。 嵌套查询与缓存。 范围查找的打表,Log(N)特性。 字符串Like问题,字典树。 组合复杂问题,位运算。 提高可读性,避免驾驭Linq埋地雷反面案例一,简单Equals问题 varresult=orderList.Where(p=orderIdList.Contains(p.OrderId);Aggregate,All,Any,AsEnumerable,AsParallel,AsParallel,AsQuerya
4、ble,AsQueryable,Average,Cast,Concat,Contains,Count,DefaultIfEmpty,Distinct,ElementAt,ElementAtOrDefault,Except,First,FirstOrDefault,GroupBy,GroupJoin,Intersect,Last,LastOrDefault,LongCount,Max,Min,OfType,OrderBy,OrderByDescending,Reverse,Select,SelectMany,SequenceEqual,Single,SingleOrDefault,Skip,Sk
5、ipWhile,servable,Sum,Take,TakeWhile,ToDictionary,ToList,ToLookup,Union,Where,Zip反面案例二,组合键foreach(CHFSearchProductDescDTOdescInfoinresSearch.ProductDescInfoList)293294boolDescFlag=false;295foreach(CHFOrderProductDescDTOdescOrderInfoinreqCreate.ProductInfo.ProductDescInfoList)296297if(descInfo.DescTit
6、le=descOrderInfo.DescTitle&298descInfo.Content=descOrderInfo.Content&299descInfo.Title=descOrderInfo.Title)300301DescFlag=true;302303304/没有相等的数据305if(!DescFlag)306307Assert.IsTrue(false);308范围打表 折半二分查找的O(LgN)特性 O(A+B)读取+O(A*LgA)排序+O(B*LgA)二分 远远小于O(A*B) 适用于.Contains(a=a3)取交集的技巧 哈希 微软的InterSect方法IEnum
7、erable 位运算代表排列组合,取交集的技巧 并查集FindUnion、舞蹈链模糊字符串、缓存结构等打表技巧 Trie字典树ForLike 高维度降维办法 Redis等缓存结构 以上有些暂时用不上,因为高铁接地铁,不在一条总线上,局部优化没意义,需要知道有这么回事建议阅读 Weiss算法与数据结构或任何该类书籍 刘汝佳黑皮书或任何该类书籍 MSDN关于Collections下边复杂度分析结论 MSDN关于IQueryAble,IEnumable部分 Redis文档关于各种结构体的复杂度结论。 Google和BAT算法类面试题,思考用人底线标准。 深度思考比勤奋工作更重要深度思考比勤奋工作更重要自我介绍潘宇光,2007-2009微软M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高级会计职称《高级会计实务》试题及答案
- 某印刷厂油墨使用制度
- 2026届北京海淀区六年级语文小升初分班考试模拟卷(含阅读解析作文范文评分标准)
- 某制药厂GMP管理细则
- 梦想启航时:励志故事分享小学主题班会课件
- 消防安全管理制度准则
- 高中信息技术必修1数据处理与可视化表达学考复习教学设计
- 安全意识从小抓起小学主题班会课件
- 高中二年级语文《春分时节:探寻节气里的文化密码与文化自信》知识清单
- 初中物理力与运动专题复习教案
- THNZB 23-2024 撬装式燃气调压装置
- 乘务员急救知识培训课件
- 2024秋新教材七年级语文上册读读写写汇编(注音+解释)
- DB11-T 661-2009 房屋面积测算技术规程
- 中建项目安全总监竞聘
- 机械制图-001-国开机考复习资料
- 2025年中考复习必背外研版初中英语单词词汇(精校打印)
- 山西省太原市2024-2025学年高一历史下学期期末考试试题
- 九同安一中2022届高二上学期语文校本作业之限时训练九
- 前鼻音-后鼻音汉字
- 《阿Q正传(节选)》同步练习(含解析) 统编版高中语文选择性必修下册
评论
0/150
提交评论