img
share 分享

图解算法

作者:俞征武

出版社:机械工业出版社

ISBN:9787111578871

VIP会员免费 (仅需0.8元/天) ¥ 25.0

温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!

电子书推荐

更多资源 展开

算法问题实战策略.[韩]具宗万(带详细书签) PDF 下载 完整版 评分:

编辑推荐   《算法问题实战策略》收录程序设计竞赛经典试题,在解题过程中讲解各种算法设计技巧和数据结构,培养读者的解题能力。读者可亲自编写各章习题程序并获得评分,所有示例均附有解题过程及详细说明。 内容简介   《算法问题实战策略》收录程序设计竞赛经典试题,在解题过程中讲解各种算法设计技巧和数据结构,培养读者的解题能力。读者可亲自编写各章习题程序并获得评分,所有示例均附有解题过程及详细说明。 本书主要内容 第一部分 开始解决问题 第二部分 算法分析 第三部分 算法设计范式 第四部分 一些著名的算法 第五部分 基本数据结构 第六部分 树 第七部分 图。   《算法问题实战策略》是学习解题技巧时必不可少的经典,不仅适合准备参赛的人阅读,书中对现有算法的检验和优化后的代码等,都对实际业务有非常大的帮助。本书作者是算法竞赛领域的人士,他利用自己多年积累的经验,通过多个解题示例帮助大家轻松学习算法。 作者简介   具宗万 ,   毕业于韩国延世大学计算机科学系,曾在innotive公司和NHN公司任软件工程师,现在芝加哥高频交易(HFT)公司从事算法交易开发工作。2007年开始参与运营韩国程序设计竞赛参赛者网络社交平台algospot。   获奖经历   2002年、2003年 韩国大学生程序设计竞赛 金奖   2003年、2004年 世界大学生程序设计竞赛 入围决赛   2004年、2006年、2008年 Google Code Jam 入围决赛   2007年 Top Coder Open 亚军,2006年 入围决赛   2008年、2009年 Java算法竞赛 冠军 第一部分 开始解决问题 1 第1章 解决问题与程序设计竞赛 4 1.1 引言 4 1.2 程序设计竞赛 4 1.3 阅读本书的方法 7 1.4 值得参加的程序设计竞赛 8 1.5 对赛前准备工作的一些建议 9 1.6 续读 12 第2章 解决问题概述 13 2.1 引言 13 2.2 解决问题的过程 13 2.3 解决问题的策略 17 2.4 续读 26 第3章 编码与调试 27 3.1 引言:不要忽视编码的重要性 27 3.2 编写优秀代码的原则 27 3.3 常见失误 32 3.4 调试与测试 39 3.5 变量的取值范围 42 3.6 理解实数型数据类型 46 3.7 续读 55 第二部分 算法分析 57 第4章 分析算法的时间复杂度 60 4.1 引言 60 4.2 线性时间算法 62 4.3 次线性时间算法 65 4.4 指数时间算法 67 4.5 时间复杂度 70 4.6 推测执行时间 76 4.7 计算复杂度类:P、NP、NP-完备 81 4.8 续读 84 第5章 算法正确性证明 85 5.1 引言 85 5.2 数学归纳法和循环不变式 86 5.3 归谬法 90 5.4 其他技巧 92 5.5 续读 95 第三部分 算法设计范式 97 第6章 暴力解决法 99 6.1 引言 99 6.2 递归调用和穷举搜索法 100 6.3 练习题:郊游(习题 ID:PICNIC,难度:低) 106 6.4 解题:郊游 107 6.5 练习题:盖游戏板(习题 ID:BOARDCOVER,难度:低) 109 6.6 解题:盖游戏板 111 6.7 优化问题 113 6.8 练习题:时钟同步(习题 ID:CLOCKSYNC,难度:中) 116 6.9 解题:时钟同步 117 6.10 常见穷举搜索类型 119 第7章 分治法 120 7.1 引言 120 7.2 练习题:四叉树问题(题目 ID:QUADTREE,难度:低) 130 7.3 解题:四叉树问题 131 7.4 练习题:切割篱笆(习题 ID:FENCE,难度:中) 134 7.5 解题:切割篱笆 135 7.6 练习题:粉丝见面会(题目 ID:FANMEETING,难度:高) 139 7.7 解题:粉丝见面会 141 第8章 动态规划法 143 8.1 引言 143 8.2 练习题:通配符(习题 ID:WILDCARD,难度:中) 151 8.3 解题:通配符 152 8.4 典型优化问题 156 8.5 练习题:合并LIS(题目 ID:JLIS,难度:低) 163 8.6 解题:合并LIS 164 8.7 练习题:背诵圆周率(题目 ID:PI,难度:低) 166 8.8 解题:背诵圆周率 167 8.9 练习题:Quantization(题目 ID:QUANTIZE,难度:中) 169 8.10 解题:Quantization 170 8.11 所有可能的个数与概率 174 8.12 练习题:非对称铺设(题目 ID:ASYMTILING,难度:低) 180 8.13 解题:非对称铺设 181 8.14 练习题:多联骨牌(题目 ID:POLY,难度:中) 183 8.15 解题:多联骨牌 185 8.16 练习题:逃狱的韩尼拔博士(题目 ID:NUMB3RS,难度:中) 187 8.17 解题:逃狱的韩尼拔博士 189 第9章 动态规划技巧 194 9.1 计算优化问题的实际答案 194 9.2 练习题:打包行李(题目 ID:PACKING,难度:中) 195 9.3 解题:打包行李 197 9.4 练习题:光学字符识别(题目 ID:OCR,难度:高) 199 9.5 解题:光学字符识别 201 9.6 计算第k个答案 204 9.7 练习题:第k个最大递增子序列(题目 ID:KLIS,难度:高) 209 9.8 解题:第k个最长递增子序列 210 9.9 练习题:龙曲线(题目 ID:DRAGON,难度:中) 214 9.10 解题:龙曲线 216 9.11 对非整数型输入的制表 219 9.12 练习题:韦布巴津(题目 ID:ZIMBABWE,难度:高) 224 9.13 解题:韦布巴津 225 9.14 练习题:恢复实验数据(题目 ID:RESTORE,难度:中) 230 9.15 解题:恢复实验数据 231 9.16 组合游戏 234 9.17 练习题:数字游戏(题目 ID:NUMBERGAME,难度:低) 239 9.18 解题:数字游戏 240 9.19 练习题:方块游戏(题目 ID:BLOCKGAME,难度:中) 242 9.20 解题:方块游戏 243 9.21 迭代动态规划法 245 9.22 练习题:回转寿司(题目 ID:SUSHI,难度:中) 249 9.23 解题:回转寿司 250 9.24 练习题:Genius(题目 ID:GENIUS,难度:中) 253 9.25 解题:Genius 254 9.26 续读 256 第10章 贪心法 257 10.1 引言 257 10.2 练习题:加热便当(题目 ID:LUNCHBOX,难度:低) 264 10.3 解题:加热便当 265 10.4 练习题:合并字符串(题目 ID:STRJOIN,难度:中) 268 10.5 解题:合并字符串 269 10.6 练习题:米那斯雅诺(题目 ID:MINASTIRITH,难度:高) 273 10.7 解题:米那斯雅诺 275 第11章 组合搜索 281 11.1 引言 281 11.2 组合搜索的方法 283 11.3 练习题:盖游戏板2(题目 ID:BOARDCOVER2,难度:低) 298 11.4 解题:盖游戏板2 299 11.5 练习题:患有严重过敏症的朋友们(题目 ID:ALLERGY,难度:中) 303 11.6 解题:患有严重过敏症的朋友们 304 11.7 练习题:数谜(题目 ID:KAKURO2,难度:中) 307 11.8 解题:数谜 309 11.9 续读 315 第12章 将优化问题转换为决策 问题求解 316 12.1 引言 316 12.2 练习题:南极基地(题目 ID:ARCTIC,难度:低) 320 12.3 解题:南极基地 321 12.4 练习题:加拿大旅行(题目 ID:CANADATRIP,难度:中) 323 12.5 解题:加拿大旅行 324 12.6 练习题:退选课程(题目 ID:WITHDRAWAL,难度:高) 326 12.7 解题:退选课程 327 第四部分 一些著名的算法 329 第13章 数值分析 331 13.1 引言 331 13.2 二分法 331 13.3 练习题:提高获胜率(题目 ID:RATIO,难度:低) 338 13.4 解题:提高获胜率 339 13.5 三叉搜索 341 13.6 练习题:花粉化石(题目 ID:FOSSIL,难度:高) 346 13.7 解题:花粉化石 347 13.8 其他主题 351 第14章 整数论 352 14.1 引言 352 14.2 素数 352 14.3 练习题:密码486(题目 ID:PASS486,难度:中) 356 14.4 解题:密码486 357 14.5 欧几里得算法 360 14.6 练习题:魔法药水(题目 ID:POTION,难度:中) 361 14.7 解题:魔法药水 362 14.8 模运算 364 14.9 续读 366 第15章 计算几何 367 15.1 引言 367 15.2 计算几何的工具 367 15.3 相交、距离、面积 373 15.4 练习题:弹球模拟(题目 ID:PINBALL,难度:高) 377 15.5 解题:弹球模拟 379 15.6 多边形 383 15.7 练习题:金银岛(题目 ID:TREASURE,难度:高) 386 15.8 解题:金银岛 387 15.9 练习题:是呆子?不是呆子?(题目ID:NERDS,难度:中) 390 15.10 解题:是呆子?不是呆子? 392 15.11 计算几何算法设计范式 396 15.12 常见失误与注意事项 403 15.13 续读 404 第五部分 基本数据结构 405 第16章 位掩码 410 16.1 引言 410 16.2 利用位掩码实现集合 413 16.3 位掩码应用示例 417 16.4 练习题:毕业学期(题目 ID:GRADUATION,难度:中) 420 16.5 解题:毕业学期 422 16.6 续读 424 第17章 部分和 425 17.1 引言 425 17.2 练习题:圣诞娃娃(题目 ID:CHRISTMAS,难度:中) 429 17.3 解题:圣诞娃娃 430 17.4 其他学习内容 432 第18章 线性数据结构 433 18.1 引言 433 18.2 动态数组 433 18.3 链表 437 18.4 动态数组和链表的比较 440 18.5 练习题:约瑟夫斯(题目 ID:JOSEPHUS,难度:低) 440 18.6 解题:约瑟夫斯 441 18.7 续读 442 第19章 队列、栈以及双端队列 443 19.1 引言 443 19.2 队列、栈以及双端队列的实现方法 444 19.3 队列与栈的应用 445 19.4 练习题:不匹配括号(题目 ID:BRACKETS2,难度:低) 448 19.5 解题:不匹配括号 449 19.6 练习题:分析外星信号(题目 ID:ITES,难度:中) 450 19.7 解题:分析外星信号 451 第20章 字符串 455 20.1 引言 455 20.2 字符串检索 456 20.3 练习题:宰河的保险箱(题目 ID:JAEHASAFE,难度:中) 466 20.4 解题:宰河的保险箱 467 20.5 后缀数组 468 20.6 练习题:口头禅(题目 ID:HABIT,难度:中) 476 20.7 解题:口头禅 477 20.8 续读 478 第六部分 树 479 第21章 树的实现与遍历 481 21.1 引言 481 21.2 树的遍历 483 21.3 练习题:变更树的遍历顺序(题目 ID:TRAVERSAL,难度:低) 484 21.4 解题:变更树的遍历顺序 486 21.5 练习题:要塞(题目 ID:FORTRESS,难度:中) 487 21.6 解题:要塞 488 第22章 二叉搜索树 493 22.1 引言 493 22.2 二叉搜索树的定义和操作 493 22.3 时间复杂度分析与平衡二叉搜索树 496 22.4 练习题:是呆子?不是呆子?(题目ID:NERD2,难度:中) 496 22.5 解题:是呆子?不是呆子?2 498 22.6 直接实现平衡二叉搜索树:树堆 501 22.7 练习题:反转插入排序(题目 ID:INSERTION,难度:中) 508 22.8 解题:反转插入排序 509 第23章 优先级队列和堆 511 23.1 引言 511 23.2 堆的定义与实现方法 512 23.3 ¨¢?¤???¨?a?êo?à???¥|ì??D???|ì?ê?§¨?a?? ID?êoRUNNINGMEDIAN?ê????¨¨?êo|ì¨a?ê? 518 23.4 解题:变化的中间值 519 第24章 区间树 521 24.1 区间树:区间相关问题解答 521 24.2 练习题:登山路(题目 ID:MORDDR,难度:中) 527 24.3 解题:登山路 528 24.4 练习题:寻根问祖(题目 ID:FAMILYTREE,难度:高) 529 24.5 解题:寻根问祖 530 24.6 树状数组:快速而简单的区间和 533 24.7 练习题:计算插入排序的时间(题目 ID:MEASURETIME,难度:中) 536 24.8 解题:计算插入排序的时间 537 第25章 互斥集合 541 25.1 引言 541 25.2 练习题:编辑器之争(题目 ID:EDITORWARS,难度:中) 546 25.3 解题:编辑器之争 548 第26章 字典树 553 26.1 引言 553 26.2 练习题:再见,谢谢所有的鱼(题目 ID:SOLONG,难度:中) 557 26.3 解题:再见,谢谢所有的鱼 559 26.4 利用字典树检索多重字符串 563 26.5 练习题:安全终结者(题目 ID:NH,难度:高) 569 26.6 解题:安全终结者 570 第七部分 图 573 第27章 图的表示方式及定义 576 27.1 引言 576 27.2 图的应用示例 579 27.3 隐式图结构 580 27.4 图的几种表示法 581 第28章 图的深度优先搜索 585 28.1 引言 585 28.2 练习题:古语词典(习题 ID:DICTIONARY,难度:低) 590 28.3 解题:古语词典 591 28.4 欧拉回路 594 28.5 练习题:有限单词接龙(题目 ID:WORDCHAIN,难度:低) 597 28.6 解题:有限单词接龙 598 28.7 理论背景及应用 602 28.8 练习题:安装监控摄像头(题目 ID:GALLERY,难度:中) 613 28.9 解题:安装监控摄像头 614 28.10 练习题:安排会议室(题目 ID:MEETINGROOM,难度:高) 616 28.11 解题:安排会议室 618 第29章 图的宽度优先搜索 625 29.1 引言 625 29.2 练习题:排序游戏(题目 ID:SORTGAME,难度:中) 629 29.3 解题:排序游戏 630 29.4 练习题:儿童节(题目 ID:CHILDRENDAY,难度:高) 633 29.5 解题:儿童节 634 29.6 最短路径策略 637 29.7 练习题:汉诺塔(题目 ID:HANOI4B,难度:中) 648 29.8 解题:汉诺塔 650 第30章 最短路径问题 653 30.1 引言 653 30.2 迪杰斯特拉最短路径算法 654 30.3 练习题:信号路由(题目 ID:ROUTING,难度:低) 661 30.4 解题:信号路由 662 30.5 练习题:消防车(题目 ID:FIRETRUCKS,难度:中) 663 30.6 解题:消防车 664 30.7 练习题:铁人N项比赛(题目 ID:NTHLON,难度:高) 665 30.8 解题:铁人N项比赛 667 30.9 贝尔曼-福特最短路径算法 669 30.10 练习题:时间旅行(题目 ID:TIMETRIP,难度:中) 674 30.11 解题:时间旅行 675 30.12 弗洛伊德多源最短路径算法 677 30.13 练习题:检查酒驾(题目 ID:DRUNKEN,难度:中) 682 30.14 解题:检查酒驾 684 30.15 练习题:竞选承诺(题目 ID:PROMISES,难度:中) 685 30.16 解题:竞选承诺 687 第31章 最小生成树 689 31.1 引言 689 31.2 克鲁斯克尔最小生成树算法 690 31.3 普里姆最小生成树算法 694 31.4 练习题:局域网(题目 ID:LAN,难度:低) 697 31.5 解题:局域网 698 31.6 练习题:选定旅行路线(题目 ID:TPATH,难度:高) 699 31.7 解题:选定旅行路线 700 第32章 网络流 705 32.1 引言 705 32.2 福特-富尔克森算法 706 32.3 网络建模 713 32.4 练习题:操纵比赛(题目 ID:MATCHFIX,难度:中) 715 32.5 解题:操纵比赛 717 32.6 练习题:国家项目(题目 ID:PROJECTS,难度:高) 719 32.7 解题:国家项目 720 32.8 二分图匹配 723 32.9 练习题:象(题目 ID:BISHOPS,难度:中) 729 32.10 解题:象 730 32.11 练习题:设置陷阱(题目 ID:TRAPCARD,难度:高) 732 32.12 解题:设置陷阱 734 32.13 其他学习内容 737

...展开详情
上传时间:2018-02 大小:239.21MB
热门图书