本书是一部设计与分析领域的经典著作,着重介绍了计算机算法设计领域的基本原则和根本原理。
书中深入分析了一些计算机模型上的算法,介绍了一些和设计有效算法有关的数据结构和编程技术,为读者提供了有关递归方法、分治方法和动态规划方面的详细实例和实际应用,并致力于更有效算法的设计和开发。
同时,对NP完全等问题能否有效求解进行了分析,并探索了应用启发式算法解决问题的途径。
另外,本书还提供了大量富有指导意义的习题。
,本书可以作为高等院校计算机算法设计与分析课程的本科生或研究生教材,也可以作为计算机理论研究人员、计算机算法设计人员的参考书。
2023/12/9 23:49:09 31.94MB 算法 黄林鹏
1
编辑推荐:38位大师级的程序员,一步步讲解他们的项目架构,开发时的种种折中考虑(tradeoffs)以及何时必须打破常规,寻求突破。
全球38位顶尖高手、众多语言之父经典之作。
本书收录的是软件设计领域中的一组大师级作品。
每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案,并且细述了这些解决方案的巧妙之处。
本书既不是一本关于设计模式的书,也不是一本关于软件工程的书,它告诉你的不仅仅是一些正确的方式或者错误的方式。
它让你站在那些优秀软件设计师的肩膀上,从他们的角度来看待问题。
本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。
内容简介:本书介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。
在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。
本书33章,有33位作者,每位作者贡献一章。
每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。
33位大师,每个人对代码之美都有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。
虽然本书的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。
目录信息:第1章正则表达式匹配器。
1.1编程实践1.2实现1.3讨论1.4其他的方法1.5构建1.6小结第2章Subversion中的增量编辑器:像本体一样的接口2.1版本控制与目录树的转换2.2表达目录树的差异2.3增量编辑器接口2.4但这是不是艺术?2.5像体育比赛一样的抽象2.6结论第3章我编写过的最漂亮代码3.1我编写过的最漂亮代码3.2事倍功半3.3观点3.4本章的中心思想是什么?3.5结论3.6致谢第4章查找4.1.耗时4.2.问题:博客数据4.3.问题:时间,人物,以及对象?4.4.大规模尺度的搜索4.5.结论第5章正确、优美、迅速(按重要性排序):从设计XML验证器中学到的经验5.1XML验证器的作用5.2问题所在5.3版本1:简单的实现5.4版本2:模拟BNF语法——复杂度O(N)5.5版本3:第一个复杂度O(logN)的优化5.6版本4:第二次优化:避免重复验证5.7版本5:第三次优化:复杂度O(1)5.8版本6:第四次优化:缓存(Caching)5.9从故事中学到的第6章集成测试框架:脆弱之美6.1.三个类搞定一个验收测试框架6.2.框架设计的挑战6.3.开放式框架6.4.一个HTML解析器可以简单到什么程度?6.5.结论第7章美丽测试7.1讨厌的二分查找7.2JUnit简介7.3将二分查找进行到底7.4结论第8章图像处理中的即时代码生成第9章自顶向下的运算符优先级9.1.JavaScript9.2.符号表9.3.语素9.4.优先级9.5.表达式9.6.中置运算符9.7.前置操作符9.8.赋值运算符9.9.常数9.10.Scope9.11.语句9.12.函数9.13.数组和对象字面量9.14.要做和要思考的事第10章追求加速的种群计数10.1.基本方法10.2.分治法10.3.其他方法10.4.两个字种群计数的和与差10.5.两个字的种群计数比较10.6.数组中的1位种群计数10.7.应用第11章安全通信:自由的技术11.1项目启动之前11.2剖析安全通信的复杂性11.3可用性是关键要素11.4基础11.5测试集11.6功能原型11.7清理,插入,继续……11.8在喜马拉雅山的开发工作11.9看不到的改动11.10速度确实重要11.11人权中的通信隐私11.12程序员与文明第12章在BioPerl里培育漂亮代码12.1.BioPerl和Bio::Graphics模块12.2.Bio::Graphics的设计流程12.3.扩展Bio::Graphics12.4.结束语和教训第13章基因排序器的设计13.1基因排序器的用户界面13.2通过Web跟用户保持对话13.3.多态的威力13.4滤除无关的基因13.5大规模美丽代码理论13.6结论第14章优雅代码随硬件发展的演化14.1.计算机体系结构对矩阵算法的影响14.2一种基于分解的方法14.3一个简单
2023/11/20 12:23:22 49.42MB 《代码之美》 中文 完整版 pdf
1
课程大纲每节课资料提前5天发放第1章本节大纲”破解“算法面试"Hack"theAlgorithmInterview算法面试究竟考什么史上最全的算法面试考点大全2013-2018面试难度变化如何在最有效率的准备算法面试如何在不押题的情况下更有信息的去面试2018/6/24上午9:30:00第2章本节大纲二分与LogN算法BinarySearch&LogNAlgorithm二分法三重境界二分位置之满足条件的第一次-BinarySearchonIndex-OOXX二分位置之保留一半-BinarSearchonIndex-Halfhalf二分答案-BinarySearchonResult学习BinarySearch的通用模板,不再死循环讲解SearchinRotatedSortedArray等10道高频二分搜索题2018/7/1上午9:30:00第3章本节大纲为面试而生的双指针算法TwoPointersAlgorithmTwoSum问题及他的各种扩展TwoSum&Follow-ups其他高频的双指针问题2018/7/2上午9:30:00第4章本节大纲宽度优先搜索和拓扑排序BFS&TopologicalSorting二叉树上的宽搜BFSinBinaryTree二叉树的序列化问题BinaryTreeSerialization图上的宽搜BFSinGraph拓扑排序TopologicalSorting棋盘上的宽搜BFSinChessboard2018/7/15上午9:30:00第5章本节大纲基于树的深度优先搜索Tree-basedDFS二叉树的深度优先遍历BinaryTreeDFSTraversal先序/中序/后序Preorder/inorder/postorder二叉树中的分治算法Divide&ConquerDFS模板IntroduceDFSTemplate二叉树高频面试问题递归三要素遍历算法与分治算法对比TraversevsDivideConquer2018/7/16上午9:30:00第6章本节大纲基于组合的深度优先搜索Combination-basedDFS组合类深搜CombinationDFS排列类深搜PermutationDFS图上的深搜GraphDFS非递归的深搜实现方法Non-Recursion2018/7/22上午9:30:00第7章本节大纲基于排列、图的深度优先搜索Permutation/GraphbasedDFSTBD2018/7/23上午9:30:00第8章本节大纲数据结构-栈,队列,哈希表与堆Stack,Queue,Hash&Heap哈希表Hash常用的哈希库的区别HashSetvsHashMapvsHashTable哈希表的实现原理BasicHashKnowledge哈希函数HashFunction冲突的解决方法Collision开散列OpenHashing闭散列ClosedHashing哈希扩容Rehashing哈希表高频面试题HighFrequentlyAskedHashQuestions堆堆的基本原理BasicHeapKnowledge优先队列与堆的联系和区别PriorityQueuevsHeap堆的高频面试题HighFrequentlyAskedHeapQuestions堆的代替品:TreeMap2018/7/29上午9:30:00第9章本节大纲数据结构-区间、数组、矩阵与树状数组Interval,Array,Matrix&BinaryIndexedTree数组Array子数组及相关面试题Subarray&RelatedQuestions其他高频数组问题HighFrequentAskedArrayQuestionsTBD2018/7/30上午9:30:00课程更新日志
2023/10/26 20:27:35 2.24MB 编程 算法 九章算法 动态规划
1
给定n座建筑物B[1,2,...,n],每个建筑物B[i]表示为一个矩形,用三元组B[i]=(ai,bi,hi)表示,其中ai表示建筑左下顶点,bi表示建筑的右下顶点,hi表示建筑的高,请设计一个O(nlogn)的算法求出这n座建筑物的天际轮廓。
例如,左下图所示中8座建筑的表示分别为(1,5,11),(2,7,6),(3,9,13),(12,16,7),(14,25,3),(19,22,18),(23,29,13)和(24,28,4),其中天际轮廓如右下图所示可用9个高度的变化(1,11),(3,13),(9,0),(12,7),(16,3),(19,18),(22,3),(23,13)和(29,0)表示。
另举一个例子,假定只有一个建筑物(1,5,11),其天际轮廓输出为2个高度的变化(1,11),(5,0)。
2023/10/26 14:05:22 3KB 分治 天际线 算法基础
1
基础算法第7章分治算法(C++版)-2021.02.09.pdf
2023/9/30 23:42:41 2.01MB CSP-J CSP-S NOIP
1
《挑战程序设计竞赛(第2版)》是人民邮电出版社出版发行的图书,作者是秋叶拓哉,岩田阳一,北川宜稔。
本书对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。
挑战程序设计竞赛2:算法和数据结构本书分为准备篇、基础篇和应用篇三大部分,借助在线评测系统AizuOnlineJudge以及大量例题,详细讲解了算法与复杂度、初等和高等排序、搜索、递归和分治法、动态规划法、二叉搜索树、堆、图、计算几何学、数论等算法和数据结构的关键知识点,既可以作为挑战程序设计竞赛的参考书,也可以用来引导初学者系统学习算法和数据结构的基础知识。
本书适合所有程序设计人员、程序设计竞赛爱好者以及高校计算机专业师生阅读
2023/9/28 16:18:23 106.74MB 算法 OJ
1
作  者:徐子珊著出版社:人民邮电出版社ISBN:9787115228376出版时间:2010-06-01版  次:1页  数:409装  帧:平装开  本:16开国内算法界著名学者、计算理论学组组长朱洪教授推荐。
  本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。
《算法设计、分析与实现从入门到精通:C、C++和Java》还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。
《算法设计、分析与实现从入门到精通:C、C++和Java》插图也精美,如Hanoi塔图等,都给《算法设计、分析与实现从入门到精通:C、C++和Java》增色很多,让读者在兴趣中学习。
此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。
这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
  38个经典范例,包括渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法、线性规划算法和计算几何等算法设计和实现技巧。
  26个国际大学生程序设计竞赛真题的详细解析及算法的应用。
  3种主流语言(C、C++和Java)实现算法范例程序。
内容简介  《算法设计、分析与实现从入门到精通:C、C++和Java》第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法和图的搜索算法。
每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。
这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。
一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。
《算法设计、分析与实现从入门到精通:C、C++和Java》第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。
  《算法设计、分析与实现从入门到精通:C、C++和Java》特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。
建议读者对照《算法设计、分析与实现从入门到精通:C、C++和Java》在计算机上自己创建项目、文件,进行录入、调试程序等操作,从中体会算法思想的精髓,体验编程成功带来的乐趣。
目录第1章集腋成裘——渐增型算法11.1算法设计与分析11.2插入排序算法41.2.1算法描述与分析41.2.2程序实现61.2.3应用——赢得舞伴301.3两个有序序列的合并算法321.3.1算法描述与分析321.3.2程序实现341.4序列的划分451.4.1算法描述与分析451.4.2程序实现461.5小结52第2章化整为零——分治算法532.1Hanoi塔问题与递归算法532.1.1算法的描述与分析532.1.2程序实现562.1.3应用——新Hanoi塔游戏592.2归并排序算法622.2.1算法描述与分析622.2.2程序实现632.2.3应用——让舞伴更开心692.3快速排序算法702.3.1算法描述与分析702.3.2程序实现722.4堆的实现792.4.1堆的概念及其创建792.4.2程序实现832.5堆排序882.5.1算法描述与分析882.5.2程序实现892.6基于二叉堆的优先队列942.6.1算法描述与分析942.6.2程序实现952.7关于排序算法1052.7.1比较型排序算法的时间复杂度1052.7.2C/C++/Java提供的排序函数(方法)1072.7.3应用——环法自行车赛1082.8小结109第3章记表备查——动态规划算法1113.1矩阵链乘法1123.1.1算法描述与分析1123.1.2程序实现1153.1.3应用——牛牛玩牌1213.2最长公共子序列1233.2.1算法描述与分析1233.2.2程序实现1263.2.3算法的应用1323.30-1背包问题1363.3.1算法描述与分析1363.3.2程序实现1383.3.3算法的应用1423.4带权有向图中任意两点间的最短路径1443.4.1算法描述与分析1
2023/9/13 5:28:44 41.66MB 算法设计 C C++和JAVA
1
1.问题描述设B是一个n×n棋盘,n=2k,(k=1,2,3,…)。
分治法设计一个算法,使得:用若干个L型条块可以覆盖住B的除一个特殊方格外的所有方格。
其中,一个L型条块可以覆盖3个方格。
且任意两个L型条块不能重叠覆盖棋盘。
例如:如果n=2,则存在4个方格,其中,除一个方格外,其余3个方格可被一L型条块覆盖;
当n=4时,则存在16个方格,其中,除一个方格外,其余15个方格被5个L型条块覆盖。
2.具体要求输入一个正整数n,表示棋盘的大小是n*n的。
输出一个被L型条块覆盖的n*n棋盘。
该棋盘除一个方格外,其余各方格都被L型条块覆盖住。
为区别出各个方格是被哪个L型条块所覆盖,每个L型条块用不同的数字或颜色、标记表示。
3.测试数据(仅作为参考)输入:8输出:A2337788221376684115996104455091010121213001718181211131317171618141111151916162014141515191920204.设计与实现的提示对2k×2k的棋盘可以划分成若干块,每块棋盘是原棋盘的子棋盘或者可以转化成原棋盘的子棋盘。
注意:特殊方格的位置是任意的。
而且,L型条块是可以旋转放置的。
为了区分出棋盘上的方格被不同的L型条块所覆盖,每个L型条块可以用不同的数字、颜色等来标记区分。
2023/9/5 16:58:10 3KB L型 覆盖 棋盘
1
南京邮电大学算法设计与分析陈慧南实验一分治策略实验报告
2023/8/20 8:20:24 732KB njupt
1
作者:徐子珊  本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。
本书还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。
本书插图也精美,如Hanoi塔图等,都给本书增色很多,让读者在兴趣中学习。
此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。
这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
  本书第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法  点击此处添加图片说明和图的搜索算法。
每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。
这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。
一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。
本书第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。
  本书特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。
建议读者对照本书在计算机上自己创建项目、文件,进行录入、调试程序等操作,从中体会算法思想的精髓,体验编程成功带来的乐趣。
1
共 48 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡