编辑推荐:
第一单元 编程预备知识 / 1
第 1 课 计算机中的数制 / 4
第 2 课 数据编码 / 8
第二单元 C++ 程序设计基础 / 13
第 3 课 C++ 编译环境与第一个 C++ 程序 / 14
第 4 课 输入与输出语句 / 18
第 5 课 赋值语句 / 21
第 6 课 数据类型与运算符 / 24
第 7 课 常量与变量 / 29
第 8 课 表达式 / 31
第 9 课 顺序结构程序 / 33
第 10 课 单分支结构 / 36
第 11 课 多分支结构 / 40
第 12 课 分支嵌套语句 / 45
第 13 课 for 语句 / 52
第 14 课 while 语句 / 56
第 15 课 一层循环结构 / 58
第 16 课 二层循环结构 / 60
第 17 课 多层循环结构 / 63
第 18 课 循环结构的应用(一) / 66
第 19 课 循环结构的应用(二) / 68
第 20 课 循环结构的应用(三) / 71
第 21 课 一维数组 / 77
第 22 课 一维数组的应用(一) / 82
第 23 课 一维数组的应用(二) / 87
第 24 课 多维数组 / 92
第 25 课 数组的综合应用 / 97
第 26 课 字符和字符串 / 102
第 27 课 字符串的综合应用 / 110
第 28 课 函数 / 115
第 29 课 函数与递归 / 128
第 30 课 函数的综合应用 / 139
第 31 课 结构体与联合 / 143
第 32 课 指针 / 152
第 33 课 结构体与指针综合应用 / 156
第 34 课 文件操作与单步调试 / 160
第 35 课 STL 中常用的函数 / 165
第 36 课 STL 中的容器 / 183
第三单元 简单算法 / 195
第 37 课 简单排序 / 196
第 38 课 复杂排序 / 207
第 39 课 排序的应用 / 216
第 40 课 暴力枚举 / 219
第 41 课 高精度数加减法 / 230
第 42 课 高精度数乘除法 / 235
第 43 课 二分查找 / 239
第 44 课 二分答案与三分答案 / 244
第 45 课 位运算 / 250
第 46 课 倍增 / 258
第 47 课 前缀和与差分 / 274
第 48 课 贪心算法 / 281
第 49 课 哈希表 / 291
第 50 课 递归算法 / 299
第 51 课 递推算法 / 313
第 52 课 广度优先搜索 / 319
第 53 课 广度优先搜索练习 / 325
第 54 课 广度优先搜索优化与变形 / 331
第 55 课 启发式搜索 / 341
第 56 课 深度优先搜索 / 360
第 57 课 深度优先搜索优化 / 364
第 58 课 认识动态规划 / 383
第 59 课 背包模型 / 397
第 60 课 一维线性动态规划 / 406
第 61 课 多维线性动态规划 / 412
第 62 课 动态规划综合练习 / 418
第四单元 数据结构基础 / 427
第 63 课 栈与队列 / 428
第 64 课 链表 / 438
第 65 课 认识图结构 / 444
第 66 课 图结构的应用 / 453
第 67 课 最短路径——Dijkstra 算法 / 465
第 68 课 Bellman-Ford 算法与 SPFA 算法 / 471
第 69 课 Floyd 算法 / 477
第 70 课 最短路径应用 / 481
第 71 课 并查集 / 488
第 72 课 最小生成树 / 495
第 73 课 Prim 算法 / 497
第 74 课 最小生成树应用 / 499
第 75 课 拓扑排序 / 502
第 76 课 树结构的基本概念 / 504
第 77 课 树结构的存储与遍历 / 506
第 78 课 二叉树 / 512
第 79 课 二叉树的遍历 / 515
第 80 课 二叉搜索树 / 517
第 81 课 哈夫曼树与堆结构 / 519
第 82 课 二叉堆 / 524
第 83 课 树状树组 / 528
第 84 课 线段树 / 533
第 85 课 树的直径 / 537
第 86 课 课 LCA / 539
第 87 课 树上差分 / 543
第 88 课 树上动态规划 / 547
第 89 课 树问题应用 / 552
第五单元 基础数学知识 / 557
第 90 课 数学基本概念 / 558
第 91 课 素数 / 560
第 92 课 筛法 / 564
第 93 课 约数 / 569
第 94 课 裴蜀定理 / 575
第 95 课 中国剩余定理 / 577
第 96 课 排列组合 / 579
第 97 课 康托展开与逆康托展开 / 583
第 98 课 抽屉原理与容斥原理 / 585
第 99 课 卡特兰数 / 587
展开
前言
在信息爆炸与技术迭代加速的今天,计算机编程已成为连接现实世界与数字世界的桥梁,不仅专业程序员需要精进技术,非专业人士掌握编程技能也成了提升个人竞争力的重要一环。
CCF(中国计算机学会)计算机编程非专业认证,正是为了响应这一时代需求应运而生的,旨在为非计算机专业背景的学习者提供一条系统学习编程、获取专业认证的路径。而 CSP(Concurrent Sequential Processes,并发顺序进程)作为并发编程领域的经典范式,其重要性更是不言而喻,它不仅是理解并发编程思想的关键,还是实现高效、可靠并发系统的基石。
在此背景下,我们推出了《100 天精通 CSP》一书,旨在为有志于通过 CCF 计算机编程非专业认证的读者(特别是 CSP 领域的读者)提供一条清晰、高效的学习路径。本书旨在通过 100 天(涵盖 100 课)的密集学习,帮助读者从零基础起步,逐步掌握 CSP 的核心概念、编程技能,直至能够熟练运用 CSP 解决实际问题,并顺利通过 CCF 计算机编程非专业认证的 CSP 部分考试。
本书的特色如下。
·目标明确,针对性强:本书紧扣 CCF 计算机编程非专业认证的 CSP 部分考试大纲,确保所有内容均围绕考试要求展开,帮助读者精准定位学习方向。
·循序渐进,易于上手:从 CSP 的基本概念讲起,逐步深入到并发编程的实战应用,通过分阶段的学习安排,让读者在轻松愉快的氛围中逐步掌握 CSP 的精髓。
·例题丰富,注重实践:书中穿插大量例题分析,通过实战演练,让读者在解决问题的过程中不断巩固和提升所学技能,真正做到学以致用。
·图文并茂,直观易懂:通过图表、图示等直观内容,帮助读者更好地理解复杂的概念和机制,提高学习效率。
·考试辅导,助力通关:特别设置考试辅导章节,提供模拟试题、解题思路和应试技巧,帮助读者顺利通过 CCF 计算机编程非专业认证的 CSP 部分考试。
我相信,通过本书的学习,读者不仅能够掌握 CSP 的核心知识和编程技能,还能在CCF 计算机编程非专业认证的 CSP 部分考试中取得优异的成绩。同时,我们也希望这本书能够成为广大读者学习 CSP 知识、提升编程技能的得力助手。
最后,我要感谢所有为本书编写和出版付出辛勤努力的同事和朋友们。正是因为有了他们的支持和帮助,才有了这本书的诞生。同时,我们也期待广大读者能够提出宝贵的意见和建议,帮助我们不断改进和完善这本书。
让我们携手并进,共同开启这段精彩的 CSP 学习之旅,向着 CCF 计算机编程非专业认证的目标迈进!
展开