Hello 算法 1.0.0b1 Swift版典的一系列指令看作是「二分查找」算法。 小到烹饪一道菜、大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现,使我们可以通过编程将 数据结构存储在内存中,也可以编写代码来调用 CPU, GPU 执行算法,从而将生活中的问题搬运到计算机中, 更加高效地解决各式各样的复杂问题。 � 读到这里,如果你感到对数据结构、算法、数组、二分查找等此类概念一知半解,那么就太好 了!因为这正是本书 101 Figure 7‑12. 完全二叉树的数组表示 数组表示有两个优点:一是不需要存储指针,节省空间;二是可以随机访问结点。然而,当二叉树中的“空 位”很多时,数组中只包含很少结点的数据,空间利用率很低。 7.2. 二叉树遍历 从物理结构角度看,树是一种基于链表的数据结构,因此遍历方式也是通过指针(即引用)逐个遍历结点。同 时,树还是一种非线性数据结构,这导致遍历树比遍历链表更加复杂,需要使用搜索算法来实现。0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b2 Swift版典的一系列指令看作是「二分查找」算法。 小到烹饪一道菜、大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现,使我们可以通过编程将 数据结构存储在内存中,也可以编写代码来调用 CPU, GPU 执行算法,从而将生活中的问题搬运到计算机中, 更加高效地解决各式各样的复杂问题。 � 读到这里,如果你感到对数据结构、算法、数组、二分查找等此类概念一知半解,那么就太好 了!因为这正是本书 101 Figure 7‑12. 完全二叉树的数组表示 数组表示有两个优点:一是不需要存储指针,节省空间;二是可以随机访问结点。然而,当二叉树中的“空 位”很多时,数组中只包含很少结点的数据,空间利用率很低。 7.2. 二叉树遍历 从物理结构角度看,树是一种基于链表的数据结构,因此遍历方式也是通过指针(即引用)逐个遍历结点。同 时,树还是一种非线性数据结构,这导致遍历树比遍历链表更加复杂,需要使用搜索算法来实现。0 码力 | 199 页 | 15.72 MB | 1 年前3
Hello 算法 1.1.0 Swift版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,因此 std::list 对缓存的利用率较低。一般情况下,std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue , 而非链表。 Q:初始化列表 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,二叉搜索树(binary search tree)满足以下条件。 第 7 章 树 hello‑algo.com 151 1. 对于根节点,左子树中所有节点的值0 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Swift 版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,因此 std::list 对缓存的利用率较低。一般情况下,std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue , 而非链表。 Q:操作 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,二叉搜索树(binary search tree)满足以下条件。 第 7 章 树 www.hello‑algo.com 151 1. 对于根节点,左子树中所有节点的值0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.0.0b5 Swift版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题转 移到计算机上,以更高效的方式解决各种复杂问题。 � 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,这本书 将引导你迈入数据结构与算法的知识殿堂。 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个 元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,std::list 对缓存的利用率较低。一般情况下, std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue ,而非链表。 84 第 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,「二叉搜索树 binary search tree」满足以下条件。 1. 对于根节点,左子树中所有节点的值 < 根节点的值 < 右子树中所有节点的值。0 码力 | 376 页 | 30.70 MB | 1 年前3
Hello 算法 1.0.0 Swift版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 � 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将 引导你迈入数据结构与算法的知识殿堂。 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,因此 std::list 对缓存的利用率较低。一般情况下,std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue , 而非链表。 Q:初始化列表 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,「二叉搜索树 binary search tree」满足以下条件。 第 7 章 树 hello‑algo.com 153 1. 对于根节点,左子树中所有节点的值0 码力 | 378 页 | 17.59 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Swift 版案。從資料結構與演算法的角度看,這種方法本質上是“貪婪”演算法。 小到烹飪一道菜,大到星際航行,幾乎所有問題的解決都離不開演算法。計算機的出現使得我們能夠透過程 式設計將資料結構儲存在記憶體中,同時編寫程式碼呼叫 CPU 和 GPU 執行演算法。這樣一來,我們就能把 生活中的問題轉移到計算機上,以更高效的方式解決各種複雜問題。 Tip 如果你對資料結構、演算法、陣列和二分搜尋等概念仍感到一知半解,請繼續往下閱讀,本書將引導 空間開銷:由於每個元素需要兩個額外的指標(一個用於前一個元素,一個用於後一個元素),所以 std::list 通常比 std::vector 更佔用空間。 ‧ 快取不友好:由於資料不是連續存放的,因此 std::list 對快取的利用率較低。一般情況下,std::vector 的效能會更好。 另一方面,必要使用鏈結串列的情況主要是二元樹和圖。堆疊和佇列往往會使用程式語言提供的 stack 和 queue ,而非鏈結串列。 Q:操作 ‧ 陣列儲存需要連續記憶體空間,因此不適合儲存資料量過大的樹。 ‧ 增刪節點需要透過陣列插入與刪除操作實現,效率較低。 ‧ 當二元樹中存在大量 None 時,陣列中包含的節點資料比重較低,空間利用率較低。 7.4 二元搜尋樹 如圖 7‑16 所示,二元搜尋樹(binary search tree)滿足以下條件。 第 7 章 樹 www.hello‑algo.com 151 1. 對於根節點,左子樹中所有節點的值0 码力 | 379 页 | 18.79 MB | 10 月前3
Swift for TensorFlow - 莲叔TensorFlow Ecosystem • First-class Machine Learning, Not just a TensorFlow API wrapper • Support CPU / GPU / Cloud TPU • Still in early stage, active developing • Combine usability & performance • Work nicely operation Pure graph • Executed by TensorFlow Runtime • No host operation • Can be run on GPU/TPU/ Distributed Device. Summary • Based on Compiler Based Program Slicing and TensorFlow Distributed0 码力 | 56 页 | 3.03 MB | 1 年前3
从 Swift 到机器学习
- 王巍1),与特征点乘得到结果 发⽣生了了什什么 Turi Turi • 2013, 成⽴立 • 2016, Apple 以 2 亿美元收购 • 2017, 开源, ⽀支持 Metal 和 macOS GPU 加速 • 2018, 部分集成⼊入 Apple Developer Toolkit (Xcode) • 未来, 更更多的学习任务… 基于学习任务的 “傻⽠瓜式” 机器器学习框架 ⼏几个问题0 码力 | 64 页 | 4.32 MB | 1 年前3
共 9 条
- 1













