《算法技术手册》一1.3.1 贪心算法

简介: 本节书摘来华章计算机《算法技术手册》一书中的第1章 ,第1.3.1节, George T.Heineman Gary Pollice Stanley Selkow 著 杨晨 曹如进 译 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3.1 贪心算法

以下的贪心算法展示了如何找到凸包上的每个点:

  1. 删除P中的最低点low——low必须在凸包上。
  2. 垂直画一条穿过点low的直线,将剩余的n-1个点分别和点low连线,以垂直直线右侧的点的夹角为正值降序排列,夹角的范围是从90皛-90啊n-2是最右侧的点,而P0是最左侧的点。图1-3中显示了垂直线以及每个点与其的夹角。
  3. 以{Pn-2, low, P0}这个顺序组成的点集为基础,在剩余的点中选择可以组成凸包的点——从P1开始,将每个点尝试加至这个点集的尾部,如果这个点集的最后三个点组成的两条线段向左拐,那么就需要移除这个错误的点。
  4. 在访问完所有的点之后,就得到了一个凸包,如图1-3所示。
    2017_09_19_143857

图1-3:使用贪心算法得到的凸包

相关文章
|
1天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
14 2
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
44 2
|
22天前
|
存储 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(上)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(上)
31 2
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
26 1
|
22天前
|
机器学习/深度学习 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
44 1
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
31 1
|
22天前
|
机器学习/深度学习 数据采集 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-11
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-11
38 1
|
22天前
|
人工智能 自然语言处理 文字识别
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-10
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-10
24 1
|
22天前
|
存储 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
34 0
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
54 0