Hello 算法 1.1.0 Swift版10.3 二分查找边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 10.5 重识搜索算法 . . . . 1 分治算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 12.2 分治搜索策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 12.3 构建二叉树问题 . . . 轮的重复后,就能将其牢记在心。推荐的题单和刷题计划请见此 GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo0 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Swift 版10.3 二分查找边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 10.5 重识搜索算法 . . . . 1 分治算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 12.2 分治搜索策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 12.3 构建二叉树问题 . . . 轮的重复后,就能将其牢记在心。推荐的题单和刷题计划请见此 GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 www0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.0.0 Swift版10.3 二分查找边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 10.5 重识搜索算法 . . . . 1 分治算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 12.2 分治搜索策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 12.3 构建二叉树问题 . . . ,通常在进行 3~5 轮的重复后,就能将其牢记在心。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo0 码力 | 378 页 | 17.59 MB | 1 年前3
Hello 算法 1.0.0b5 Swift版10.3 二分查找边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 10.5 重识搜索算法 . . . . 1 分治算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 12.2 分治搜索策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 12.3 构建二叉树问题 . . . 照“艾宾浩斯遗忘曲线”来复习题目,通常在进行 3‑5 轮的重复后,就能将其牢记在心。 3. 搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体 系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心 得可以在各个社区找到。 如图 0‑7 所示,本书内容主要涵盖“第一阶段”,旨在帮助你更高效地展开第二和第三阶段的学习。 第 0 章 前言 hello‑algo0 码力 | 376 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Swift 版10.3 二分搜尋邊界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 10.4 雜湊最佳化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 10.5 重識搜尋演算法 . . . . 1 分治演算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 12.2 分治搜尋策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 12.3 構建二元樹問題 . . . 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一”,旨在幫助你更高效地展開階段二和階段三的學習。 第 0 章 前言 www0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.0.0b2 Swift版数被交换至数组最右端,从而 左子数组长度为 ? − 1、右子数 组长度为 0 。这样进一步递归下去,每轮哨兵划分后的右子数组长度都为 0 ,分治策略失效,快速排序退化为 「冒泡排序」了。 为了尽量避免这种情况发生,我们可以优化一下基准数的选取策略。首先,在哨兵划分中,我们可以 随机选 取一个元素作为基准数。但如果运气很差,每次都选择到比较差的基准数,那么效率依然不好。 进一步地,我们可以在数组中选取 归并排序包含划分和合并两个阶段,是分而治之的标准体现。对于归并排序,排序数组需要借助辅助数 组,空间复杂度为 ?(?) ;而排序链表的空间复杂度可以被优化至 ?(1) 。 ‧ 桶排序分为三步,数据分桶、桶内排序、合并结果,体现分治策略,适用于体量很大的数据。桶排序的 难点在于数据的平均划分。 ‧ 计数排序是桶排序的一种特例,通过统计数据出现次数来实现排序;适用于数据量大但数据范围不大的 情况,并且要求数据可以被转化为正整数。0 码力 | 199 页 | 15.72 MB | 1 年前3
Hello 算法 1.0.0b1 Swift版数被交换至数组最右端,从而 左子数组长度为 ? − 1、右子数 组长度为 0 。这样进一步递归下去,每轮哨兵划分后的右子数组长度都为 0 ,分治策略失效,快速排序退化为 「冒泡排序」了。 为了尽量避免这种情况发生,我们可以优化一下基准数的选取策略。首先,在哨兵划分中,我们可以 随机选 取一个元素作为基准数。但如果运气很差,每次都选择到比较差的基准数,那么效率依然不好。 进一步地,我们可以在数组中选取0 码力 | 190 页 | 14.71 MB | 1 年前3
共 7 条
- 1













