算法
国际大学生程序设计竞赛例题解 豆瓣
作者: 郭嵩山//陈宇恒//张钊毅//周贤豪 2011 - 10
《国际大学生程序设计竞赛例题解8:广东省信息学奥林匹克竞赛试题(2007-2009年)》收录了2007—2009年广东省青少年信息学奥林匹克竞赛的全部试题、完整的测试数据和答案。为了方便读者学习,《国际大学生程序设计竞赛例题解8:广东省信息学奥林匹克竞赛试题(2007-2009年)》对每个题目作了详尽的题目分析并详细地讲解了其算法实现的原理,同时提供了完善的参考程序及程序分析。书中提供了基本测试数据,便于读者测试,自行完成上述题目的结果。随书附带的光盘,备有所有例题完整的测试数据,便于有更多需求的同学能利用规模更大的测试数据进行训练和学习。
《国际大学生程序设计竞赛例题解8:广东省信息学奥林匹克竞赛试题(2007-2009年)》提供的题目都是原创题,题目构思新颖,内容有趣,所涉及的算法知识面广,基本上覆盖大学计算机类本科专业所学的基本算法。
2020年11月1日 在读 题目比leetcode多了描述 可以理解算法的现实应用 例如treap和fenwick tree在题目中的应用:题目大意是给出N个指纹图像分别在四个属性上的排名情况,问有哪些图像是累赘的。
算法
挑战程序设计竞赛2 算法和数据结构 豆瓣
作者: [日]渡部有隆 译者: 支鹏浩 人民邮电出版社 2016 - 9
本书分为准备篇、基础篇和应用篇三大部分,借助在线评测系统Aizu Online Judge以及大量例题,详细讲解了算法与复杂度、初等和高等排序、搜索、递归和分治法、动态规划法、二叉搜索树、堆、图、计算几何学、数论等与程序设计竞赛相关的算法和数据结构,既可以作为挑战程序设计竞赛的参考书,也可以用来引导初学者系统学习算法和数据结构的基础知识。本书适合所有程序设计人员、程序设计竞赛爱好者以及高校计算机专业师生阅读。
算法竞赛入门到进阶 豆瓣
作者: 罗勇军 / 郭卫斌 2019 - 8
本书是算法竞赛的入门和进阶教材,包括算法思路、模板代码、知识体系、赛事相关等内容。本书把竞赛常用的知识点和竞赛题结合起来,讲解清晰、透彻,帮助初学者建立自信心,快速从实际问题入手,模仿经典代码解决问题,进入中级学习阶段。
全书分为12章,覆盖了目前算法竞赛中的主要内容,包括算法竞赛概述、算法复杂度、STL和基本数据结构、搜索技术、高级数据结构、基础算法思想、动态规划、数学、字符串、图论、计算几何。
本书适合用于高等院校开展的ICPC、CCPC等算法竞赛培训,中学NOI信息学竞赛培训,以及需要学习算法、提高计算思维的计算机工作者。
2020年11月1日 想读 等资源 可以直接去牛客网做题
算法
算法竞赛进阶指南 豆瓣
作者: 李煜东 中原出版传媒集团·河南电子音像出版社 2018 - 1
本书主要根据CCF-NOI信息学奥林匹克竞赛涉及的知识体系进行编写,对计算机程序设计的基本技能——数据结构与算法进行了深入的讲解。
本书面向已经掌握至少一门程序设计语言、对于算法设计有入门性认识的读者,以各类知识点之间的贯穿联系为主线,通过各种模型与例题对各种思维方向进行深入引导,让读者在阅读本书后对算法设计初步具有整体掌控性的理解。能够让读者由浅入深地体会算法,学习算法。
本书融合了作者在算法设计教育领域、算法竞赛参赛与指导领域10年来的一线经验,其特色是训练读者算法设计的思维习惯,而非对知识流水的记忆性诵读,能让认真阅读本书并完成所有练习的读者,逐渐具有NOIP竞赛一等奖以上的实力。
2020年11月1日 在读
配合闫学灿和作者的B站课程!在AcWing上面刷完
算法
程序员代码面试指南(第2版) 豆瓣
作者: 左程云 电子工业出版社 2019 - 1
《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》是一本程序员代码面试"神书”!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近300道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到接近万无一失。"刷”完本书后,你就是"题王”!《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》采用题目解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化。书中将所有的面试题从难到易依次分为"将”“校”“尉”“士”四个档次,方便读者有针对性地选择"刷”题。本书所收录的所有面试题都给出了最优解讲解和代码实现,并且提供了一些普通解法和最优解法的运行时间对比,让读者真切地感受到最优解的魅力!《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》中的题目全面且经典,更重要的是,书中收录了大量新题和最优解分析,这些内容源自笔者多年来"死磕自己”的深入思考。程序员们做好准备在IT名企的面试中脱颖而出、一举成名了吗?这本书就是你应该拥有的"神兵利器”。当然,对需要提升算法和数据结构等方面能力的程序员而言,《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》的价值也是显而易见的。
图解密码技术(第3版) 豆瓣
新版暗号技術入門: 秘密の国のアリス
作者: [日] 结城浩 译者: 周自恒 人民邮电出版社 2016 - 6
本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。
第1部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第2部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第3部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。
数学女孩4 豆瓣
数学ガール/乱択アルゴリズム
作者: 结城浩 译者: 丛熙 / 江志强 人民邮电出版社 2019 - 5
《数学女孩4:随机算法》以“随机算法”为主题,从纯粹的数学和计算机程序设计两个角度对随机算法进行了细致的讲解。内容涉及排列组合、概率、期望、线性法则、矩阵、顺序查找算法、二分查找算法、冒泡排序算法和快速排序算法等。整本书一气呵成,非常适合对数学和算法感兴趣的初高中生以及成人阅读。
Classic Computer Science Problems in Python 豆瓣 Goodreads
作者: David Kopec Manning Publications 2019 - 2
Classic Computer Science Problems in Python sharpens your CS problem-solving skills with time-tested scenarios, exercises, and algorithms, using Python. You'll tackle dozens of coding challenges, ranging from simple tasks like binary search algorithms to clustering data using k-means. You'll especially enjoy the feeling of satisfaction as you crack problems that connect computer science to the real-world concerns of apps, data, performance, and even nailing your next job interview!
what's inside
Search algorithms
Common techniques for graphs
Neural networks
Genetic algorithms
Adversarial search
Uses type hints throughout
Covers Python 3.7
Algorithms and Data Structures for External Memory 豆瓣
作者: Jeffrey Scott Vitter Now Publishers Inc 2008 - 6
Data sets in large applications are often too massive to fit completely inside the computer's internal memory. The resulting input/output communication (or I/O) between fast internal memory and slower external memory (such as disks) can be a major performance bottleneck. Algorithms and Data Structures for External Memory surveys the state of the art in the design and analysis of external memory (or EM) algorithms and data structures, where the goal is to exploit locality and parallelism in order to reduce the I/O costs. A variety of EM paradigms are considered for solving batched and online problems efficiently in external memory. Algorithms and Data Structures for External Memory describes several useful paradigms for the design and implementation of efficient EM algorithms and data structures. The problem domains considered include sorting, permuting, FFT, scientific computing, computational geometry, graphs, databases, geographic information systems, and text and string processing. Algorithms and Data Structures for External Memory is an invaluable reference for anybody interested in, or conducting research in the design, analysis, and implementation of algorithms and data structures.
Analytic Combinatorics 豆瓣
作者: Philippe Flajolet / Robert Sedgewick Cambridge University Press 2009 - 1
Analytic combinatorics aims to enable precise quantitative predictions of the properties of large combinatorial structures. The theory has emerged over recent decades as essential both for the analysis of algorithms and for the study of scientific models in many disciplines, including probability theory, statistical physics, computational biology, and information theory. With a careful combination of symbolic enumeration methods and complex analysis, drawing heavily on generating functions, results of sweeping generality emerge that can be applied in particular to fundamental structures such as permutations, sequences, strings, walks, paths, trees, graphs and maps. This account is the definitive treatment of the topic. The authors give full coverage of the underlying mathematics and a thorough treatment of both classical and modern applications of the theory. The text is complemented with exercises, examples, appendices and notes to aid understanding. The book can be used for an advanced undergraduate or a graduate course, or for self-study.
2019年10月5日 在读
昨天听了yuandong tian的talk 非常精彩 对于unnatural input data 如何把human heuristic reduction成能用Deep learning. 形成了方法论的工具:NeuRewriter. 讲了4篇2019的nips来应用这个武器:job schedule, routing, decompilation, learn architecture. 想去🇨🇦的nips了
计算机科学 算法
Bandit Algorithms for Website Optimization 豆瓣
作者: John Myles White O'Reilly Media 2013 - 1
This book shows you how to run experiments on your website using A/B testing - and then takes you a huge step further by introducing you to bandit algorithms for website optimization. Author John Myles White shows you how this family of algorithms can help you boost website traffic, convert visitors to customers, and increase many other measures of success. This is the first developer-focused book on bandit algorithms, which have previously only been described in research papers. You'll learn about several simple algorithms you can deploy on your own websites to improve your business including the epsilon-greedy algorithm, the UCB algorithm and a contextual bandit algorithm. All of these algorithms are implemented in easy-to-follow Python code and be quickly adapted to your business's specific needs. You'll also learn about a framework for testing and debugging bandit algorithms using Monte Carlo simulations, a technique originally developed by nuclear physicists during World War II. Monte Carlo techniques allow you to decide whether A/B testing will work for your business needs or whether you need to deploy a more sophisticated bandits algorithm.
Algorithms and Data Structures in Action 豆瓣
作者: Marcello La Rocca Manning Publications 2020 - 9
Algorithms and Data Structures in Action introduces you to a diverse range of algorithms you’ll use in web applications, systems programming, and data manipulation. Chapter-by-chapter, the book expands on the basic algorithms you’ll already know to give you a better selection of solutions to different programming problems. In it, you’ll discover techniques for improving priority queues, efficient caching, clustering data, and more. Each example is fully illustrated with graphics, language-agnostic pseudo-code, and code samples in various languages. When you’re done, you will be able to implement advanced and little-known algorithms to deliver better performance from your code. You’ll even have the skills to design your own data structures to solve those cases when a custom solution is required.
what's inside
Improving on basic data structures
Efficient caching
Nearest neighbour search, including k-d trees and S-trees
Full ‘pseudo-code’ and samples in multiple languages
Artificial Intelligence 豆瓣 Goodreads
9.8 (8 个评分) 作者: Stuart Russell / Peter Norvig Pearson 2009
The long-anticipated revision of this #1 selling book offers the most comprehensive, state of the art introduction to the theory and practice of artificial intelligence for modern applications. Intelligent Agents. Solving Problems by Searching. Informed Search Methods. Game Playing. Agents that Reason Logically. First-order Logic. Building a Knowledge Base. Inference in First-Order Logic. Logical Reasoning Systems. Practical Planning. Planning and Acting. Uncertainty. Probabilistic Reasoning Systems. Making Simple Decisions. Making Complex Decisions. Learning from Observations. Learning with Neural Networks. Reinforcement Learning. Knowledge in Learning. Agents that Communicate. Practical Communication in English. Perception. Robotics. For computer professionals, linguists, and cognitive scientists interested in artificial intelligence.
Algorithms Illuminated (Part 2) 豆瓣
作者: Tim Roughgarden Soundlikeyourself Publishing, LLC 2018 - 8
Algorithms are the heart and soul of computer science. Their applications range from network routing and computational genomics to public-key cryptography and machine learning. Studying algorithms can make you a better programmer, a clearer thinker, and a master of technical interviews. Algorithms Illuminated is an accessible introduction to the subject for anyone with at least a little programming experience. The exposition emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details---like a transcript of what an expert algorithms tutor would say over a series of one-on-one lessons. The book includes solutions to all quizzes and selected problems, and a series of YouTube videos by the author accompanies the book. Part 2 of this book series covers graph search and its applications, shortest-path algorithms, and the applications and implementation of several data structures: heaps, search trees, hash tables, and bloom filters.
Algorithms Illuminated 豆瓣
作者: Tim Roughgarden Soundlikeyourself Publishing 2017 - 9
Algorithms are the heart and soul of computer science. Their applications range from network routing and computational genomics to public-key cryptography and machine learning. Studying algorithms can make you a better programmer, a clearer thinker, and a master of technical interviews. Algorithms Illuminated is an accessible introduction to the subject for anyone with at least a little programming experience. The exposition emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details---like a transcript of what an expert algorithms tutor would say over a series of one-on-one lessons. Part 1 covers asymptotic analysis and big-O notation, divide-and-conquer algorithms and the master method, randomized algorithms, and several famous algorithms for sorting and selection.
Distributed Algorithms: An Intuitive Approach 豆瓣
作者: Wan Fokkink MIT Press 2018 - 2
The new edition of a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models.
This book offers students and researchers a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models. It avoids mathematical argumentation, often a stumbling block for students, teaching algorithmic thought rather than proofs and logic. This approach allows the student to learn a large number of algorithms within a relatively short span of time. Algorithms are explained through brief, informal descriptions, illuminating examples, and practical exercises. The examples and exercises allow readers to understand algorithms intuitively and from different perspectives. Proof sketches, arguing the correctness of an algorithm or explaining the idea behind fundamental results, are also included. The algorithms presented in the book are for the most part "classics," selected because they shed light on the algorithmic design of distributed systems or on key issues in distributed computing and concurrent programming.
This second edition has been substantially revised. A new chapter on distributed transaction offers up-to-date treatment of database transactions and the important evolving area of transactional memory. A new chapter on security discusses two exciting new topics: blockchains and quantum cryptography. Sections have been added that cover such subjects as rollback recovery, fault-tolerant termination detection, and consensus for shared memory. An appendix offers pseudocode descriptions of many algorithms. Solutions and slides are available for instructors.
Distributed Algorithms can be used in courses for upper-level undergraduates or graduate students in computer science, or as a reference for researchers in the field.
Distributed Systems 豆瓣
作者: Sukumar Ghosh Chapman and Hall/CRC 2014 - 7
Distributed Systems: An Algorithmic Approach, Second Edition provides a balanced and straightforward treatment of the underlying theory and practical applications of distributed computing. As in the previous version, the language is kept as unobscured as possible―clarity is given priority over mathematical formalism. This easily digestible text:
Features significant updates that mirror the phenomenal growth of distributed systems
Explores new topics related to peer-to-peer and social networks
Includes fresh exercises, examples, and case studies
Supplying a solid understanding of the key principles of distributed computing and their relationship to real-world applications, Distributed Systems: An Algorithmic Approach, Second Edition makes both an ideal textbook and a handy professional reference.
算法新解 豆瓣
作者: 刘新宇 人民邮电出版社 2016
本书分4 部分,同时用函数式和传统方法介绍主要的基本算法和数据结构。数据结构部分包括二叉树、红黑树、AVL 树、Trie、Patricia、后缀树、B 树、二叉堆、二项式堆、斐波那契堆、配对堆、队列、序列等;基本算法部分包括各种排序算法、序列搜索算法、字符串匹配算法(KMP 等)、深度优先与广度优先搜索算法、贪心算法以及动态规划。
本书适合软件开发人员、编程和算法爱好者,以及高校学生阅读参考。
世界大学生程序设计竞赛 豆瓣
作者: 吴文虎 / 王建德 2009 - 7
《世界大学生程序设计竞赛(ACM/ICPC)高级教程(第1册):程序设计中常用的计算思维方式》主要介绍了大赛程序设计中的常用思维方式,主要包括正确认识和处理整体与部分的关系、构造性思维、目标转化的思想、分类与分治思想、逆向思维、猜想与试验六个章节,旨在引导参赛学生学习并掌握编程解题的一般思维方法和过程,提高解题能力。ACM/ICPC是大学生的智力与计算机解题能力的竞赛,是世界公认的最具影响力的、规模最大的国际顶级赛事,被称为大学生的信息学奥林匹克。
计算机解题的核心是算法设计,而算法设计需要具备良好的数学素养。数学具有运用抽象思维去把握实际的能力,应用数学知识去解决实际问题时的建模过程是一个突出主要因素的科学抽象过程。进行抽象和形式化需要学习和掌握常用的计算思维方式。
Distributed Algorithms 豆瓣
作者: Nancy A. Lynch Morgan Kaufmann 1996 - 3
In "Distributed Algorithms", Nancy Lynch provides a blueprint for designing, implementing, and analyzing distributed algorithms. She directs her book at a wide audience, including students, programmers, system designers, and researchers. "Distributed Algorithms" contains the most significant algorithms and impossibility results in the area, all in a simple automata-theoretic setting. The algorithms are proved correct, and their complexity is analyzed according to precisely defined complexity measures. The problems covered include resource allocation, communication, consensus among distributed processes, data consistency, deadlock detection, leader election, global snapshots, and many others. The material is organized according to the system model-first by the timing model and then by the interprocess communication mechanism. The material on system models is isolated in separate chapters for easy reference. The presentation is completely rigorous, yet is intuitive enough for immediate comprehension. This book familiarizes readers with important problems, algorithms, and impossibility results in the area: readers can then recognize the problems when they arise in practice, apply the algorithms to solve them, and use the impossibility results to determine whether problems are unsolvable. The book also provides readers with the basic mathematical tools for designing new algorithms and proving new impossibility results. In addition, it teaches readers how to reason carefully about distributed algorithms - to model them formally, devise precise specifications for their required behavior, prove their correctness, and evaluate their performance with realistic measures.