C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器而不会认为小彭老师真的在吃答辩。 • 小彭老师说“我在拉答辩。”那么同学认为这个答辩指的是答辩(物理),小彭老师在上厕所。 而不会认为小彭老师在制作三体动画。 • 所以这位同学是人类思维,相当于 Python 的精分 API 。而如果另一个同学是硬核的计算 机思维,相当于 C++ 的一视同仁 API ,他会以为小彭老师真的在吃答辩。 • 这是通常来说,不过万一小彭老师真的这么重口味在吃答辩呢?要怎么传达这个信息? C++0 码力 | 90 页 | 8.76 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针x 的指针。 • 因为数组的每个元素都是一个变量, &a[0] 表 示数组 a 第 0 个元素的地址。 指向数组其中一个元素的指针 • 同理, &a[1] 就是第 1 个元素(按照人类的 思维是第二个元素)的地址。 修改指针指向的地址,使其加 1 ,会怎么样? • 刚才说过,数组中元素在内存中是连续排列的 。 • 因此,第 0 个元素的地址加 1 ,就可以得到 第 1 个元素的地址! 摆明了这就是个指针,避免混淆。 • 如果你真需要传入一个数组而不是数组的首 地址指针,用 C++ 的 std::array。 • 这是按值传递的,里面的修改不会变化外面 的值,符号小白程序员的思维,避免 C 语 言指针和数组的那些难以理解的坑。 字符串的本质究竟是什么? ASCII 字符对照表:把字符对应到 0~127 的整数,方便用计算机存储 • 为了让计算机也能够处理字符,英文使用 0 码力 | 128 页 | 2.95 MB | 1 年前3
Hello 算法 1.1.0 C++ 版的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 子问题的解都已经被正确地 计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 1. 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?]0 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0b5 C++版的「递归树 recursion tree」。 图 2‑6 斐波那契数列的递归树 本质上看,递归体现“将问题分解为更小子问题”的思维范式,这种分治策略是至关重要的。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略都直接或间接地应用这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.3 时间复杂度 子问题的解都已经 被正确地计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 1. 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?]0 码力 | 377 页 | 30.69 MB | 1 年前3
Hello 算法 1.0.0 C++版的「递归树 recursion tree」。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 子问题的解都已经 被正确地计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 1. 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?]0 码力 | 378 页 | 17.59 MB | 1 年前3
Hello 算法 1.2.0 简体中文 C++ 版的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 子问题的解都已经被正确地 计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 1. 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?]0 码力 | 379 页 | 18.48 MB | 10 月前3
《深入浅出MFC》2/eewer(PVIEW95. EXE )观察MLTITHRD. EXE 的执行, 的确发现有六个执行线程, 其中包括一个主执行线程。 54 55 C++ 的重要性质 C++ 是一种扭转程序员思维模式的语言。 一个人思维模式的扭转,不可能轻而易举一蹴而成。 迩来「对象导向」一词席卷了整个软件界。对象导向程序设计(Object Oriented Programming)其实是一种观念,用什么语言实现它都可以。但,当然,对象导向程序语 能够在程序代码中加油添醋(最重要的工作是加上自己的成员变量并改写虚拟函 式),或搭起消息与程序代码之间的鹊桥(建立Message Map),这全得仰仗 ClassWizard。以一般文字编辑器直接修改程序代码当然也可以,但你的思维必须 非常缜密才不会挂一漏万。本书第四篇,当我们逐渐发展一个实用程序,你就 会看到ClassWizard 的好处。 第㆓篇 欲善工事先利其器 236 内务府总管:Visual C++ 整合开发环境0 码力 | 1009 页 | 11.08 MB | 1 年前3
Hello 算法 1.0.0b4 C++版子问题的解都已经 被正确地计算出来。 根据以上分析,我们已经可以直接写出动态规划代码。然而子问题分解是一种从顶至底的思想,因此按照 “暴力搜索 → 记忆化搜索 → 动态规划”的顺序实现更加符合思维习惯。 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,包括以下递归要素: ‧ 递归参数:状态 [?, ?] 。 ‧0 码力 | 343 页 | 27.39 MB | 1 年前3
共 8 条
- 1













