Hello 算法 1.0.0b4 Python版
Figure 1‑3. 货币找零过程 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题转 移到计算机上,以更高效的方式解决各种复杂问题。 � 阅读至此,如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,那么太好了! 因为这正是本 于操作数据的方法。 ‧ 算法是数据结构发挥的舞台。数据结构本身仅存储数据信息,通过结合算法才能解决特定问题。 ‧ 特定算法通常有对应最优的数据结构。算法通常可以基于不同的数据结构进行实现,但最终执行效率 可能相差很大。 Figure 1‑4. 数据结构与算法的关系 我们可以把数据结构与算法类比为拼装积木。一套积木,除了包含许多零件之外,还附有详细的组装说明书。 我们按照说明书一步步操作,就能组装出精美的积木模型。 是在大数据量下的算法性能。 如果你对复杂度分析的概念仍感到困惑,无需担心,我们会在后续章节详细介绍。 2.1.3. 复杂度分析重要性 复杂度分析为我们提供了一把评估算法效率的“标尺”,告诉我们执行某个算法所需的时间和空间资源,并使 我们能够对比不同算法之间的效率。 复杂度是个数学概念,对于初学者可能比较抽象,学习难度相对较高。从这个角度看,复杂度分析可能不太 适合作为第一章的内容。然而0 码力 | 329 页 | 27.34 MB | 1 年前3Hello 算法 1.2.0 简体中文 Python 版
“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 www.hello‑algo.com 8 0.2.4 在提问讨论中共同成长 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 迈入数据结构与算法的知识殿堂。0 码力 | 364 页 | 18.43 MB | 9 月前3Hello 算法 1.1.0 Python版
“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机 代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 hello‑algo.com 8 0.2.4 在提问讨论中共同成长 在 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 迈入数据结构与算法的知识殿堂。0 码力 | 364 页 | 18.42 MB | 1 年前3Hello 算法 1.0.0 Python版
代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 hello‑algo.com 8 0.2.4 在提问讨论中共同成长 在 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 � 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将 引导你迈入数据结构与算法的知识殿堂。 数据结构是算法的基石。数据结构为算法提供了结构化存储的数据,以及操作数据的方法。 ‧ 算法是数据结构发挥作用的舞台。数据结构本身仅存储数据信息,结合算法才能解决特定问题。 ‧ 算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 1‑5 所示的拼装积木。一套积木,除了包含许多零件之外,还附有详细的组装说明书。 我们按照0 码力 | 362 页 | 17.54 MB | 1 年前3Hello 算法 1.0.0b5 Python版
案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题转 移到计算机上,以更高效的方式解决各种复杂问题。 � 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,这本书 将引导你迈入数据结构与算法的知识殿堂。 以及用于操作数据的方法。 ‧ 算法是数据结构发挥作用的舞台。数据结构本身仅存储数据信息,结合算法才能解决特定问题。 ‧ 算法通常可以基于不同的数据结构进行实现,并往往有对应最优的数据结构,但最终执行效率可能相 差很大。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 1‑5 所示的拼装积木。一套积木,除了包含许多零件之外,还附有详细的组装说明书。 我们按照说明书一步步操作,就能组装出精美的积木模型。 asymptotic complexity analysis」,简称「复杂度分析」。 复杂度分析体现算法运行所需的时间(空间)资源与输入数据大小之间的关系。它描述了随着输入数据大小 的增加,算法执行所需时间和空间的增长趋势。这个定义有些拗口,我们可以将其分为三个重点来理解。 ‧“时间和空间资源”分别对应「时间复杂度 time complexity」和「空间复杂度 space complexity」。0 码力 | 361 页 | 30.64 MB | 1 年前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785 17 并发执行 799 17.1 threading --- 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 17.1.1 语句中使用锁、条件和信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 17.2 multiprocessing --- 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 17.2.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 17.5 concurrent.futures --- 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860 17.5.1 Executor 对象 . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3Python 标准库参考指南 3.13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841 17 并发执行 855 17.1 threading --- 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 17.1.1 线程本地数据 语句中使用锁、条件和信号量 . . . . . . . . . . . . . . . . . . . . . . . . . 867 17.2 multiprocessing --- 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868 17.2.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914 17.5 concurrent.futures --- 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914 17.5.1 Executor 对象 . . . . . . . .0 码力 | 2246 页 | 11.74 MB | 9 月前3Python 标准库参考指南 3.13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 17 并发执行 851 17.1 threading --- 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851 17.1.1 线程本地数据 语句中使用锁、条件和信号量 . . . . . . . . . . . . . . . . . . . . . . . . . 863 17.2 multiprocessing --- 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864 17.2.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910 17.5 concurrent.futures --- 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910 17.5.1 Executor 对象 . . . . . . . .0 码力 | 2242 页 | 11.73 MB | 9 月前3Python 标准库参考指南 3.12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813 17 并发执行 827 17.1 threading --- 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827 17.1.1 线程本地数据 语句中使用锁、条件和信号量 . . . . . . . . . . . . . . . . . . . . . . . . . 839 17.2 multiprocessing --- 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 17.2.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886 17.5 concurrent.futures --- 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886 17.5.1 Executor 对象 . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3Python 标准库参考指南 3.12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813 17 并发执行 827 17.1 threading --- 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827 17.1.1 线程本地数据 语句中使用锁、条件和信号量 . . . . . . . . . . . . . . . . . . . . . . . . . 839 17.2 multiprocessing --- 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 17.2.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886 17.5 concurrent.futures --- 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886 17.5.1 Executor 对象 . . . . . . . .0 码力 | 2253 页 | 11.81 MB | 9 月前3
共 166 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17