凸包---(简单概念)

这里先介绍点概念(一般是点集覆盖问题)输入各个点的坐标
1.  将各点排序(必须的) ,为保证形成圈,把 P0 在次放在点表的尾
部;
2.  准备堆栈:建立堆栈 S,栈指针设为t,将0、1、2 三个点压入堆栈 S;
3.  对于下一个点 i
    只要 S[t-1]、S[t]、i不做左转
      就反复退栈;
    将 i压入堆栈 S
4.堆栈中的点即为所求凸包;
   其核心用 C 语言表示,仅仅是下面一段:
     t=-1;
      s[++t]=0; s[++t]=1; s[++t]=2;
      for (i=3;i<n;i++)
     {
          while (!left(s[t-1],s[t],i))
             t--;
          s[++t]=i;
     }
下面我们来看一个例子:
这是排序后的几个点

 
准备堆栈(有线段相连的点表示在栈中的点)
栈内元素:P0,P1,P2

考虑 P3:P1,P2,P3呈左转,P3入栈
栈内元素:P0,P1,P2,P3

考虑 P4:P2,P3,P4呈左转,P4入栈
栈内元素:P0,P1,P2,P3,P4

考虑 P5:P3,P4,P5非左转,退栈
栈内元素:P0,P1,P2,P38

现在,P2,P3,P5 呈左转,P5入栈
栈内元素:P0,P1,P2,P3,P5
(此时情况如图,算法舍弃了 P4)

以此方法进行下去,直到所有点都被考虑过
最终的栈中元素为 P0,P1,P2,P3,P8,P0,正是所求凸包
擦去其他点后,如图所示:

这里只是些简单概念,至于具体的,结合问题在具体讨论~~~

时间: 2024-10-22 14:13:39

凸包---(简单概念)的相关文章

句柄的简单概念

1.  句柄概念 句柄是Windows程序中的概念,本质是一个4字节(64位程序中为8字节)整数值,用来标示不同实例. 由于数据在内存地址中是变动的,为管理内存,windows引入句柄概念. 2.  句柄与普通指针 指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上. 3.  句柄的使用 一个句柄,只有确定了一个项目的时候,才开始有意义.句柄对应着项目表中的一项,只有WINDOWS本身才能直接存取这个表,应用程序只能通过API函数来处理不同

处理器boot的简单概念及误区

研一的时候在S3C6410的开发板上完成了一个简单的bootloader的设计,有一些想法可以顾及到其他处理器的设计上,在这里和大家分享一下. 晚一些的时候我再跟大家讲如何去设计 :) 首先什么叫做bootloader?在我看来,其实bootloader就是一个搬运工,负责将串行或并行flash中的数据搬运至sdram,再将pc指针切换至sdram的映射地址.大家也许会问,8/16位单片机或者CORTEX-M系列的处理器为啥不需要bootloader,在这里其实是有误区的,其实这些处理器也是有b

端口和协议的简单概念

1.端口的简单概念: 192.168.33.1代表一台主机,但是主机上可能会有很多服务, 一台主机上的不同服务功能,就是通过端口区分,然后让外部人员访问. 远程连接服务 ssh  22端口 2.协议的简单概念: 汉语.英语,不同的服务提供了不同的端口,对应了不同的功能,通信方式可能也是不同的,这种通信方式我们就可以理解为协议. 一台主机上的不同服务功能,就是通过端口区分,不同的服务端口,客户端和服务器之间通信,就可能使用不同的协议

Webservice简单概念

一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),

关于凸优化的一些简单概念

http://www.cnblogs.com/tornadomeet/p/3300132.html 没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些可以参考Ng的教学资料:http://cs229.stanford.edu/section/cs229-cvxopt.pdf,从中我们可以大致了解到一些凸优化的概念,比如凸集,凸函数,凸优化问题,线性规划,二次规划,二次约束二次规划,半正定规划等,从而对凸优化问题有个初步的认识.以下是几个重要相关概

二分图简单概念&amp;&amp;HDU 2063

二分图: 二分图又称作二部图,是图论中的一种特殊模型. 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图. 简单的说,一个图被分成了两部分,相同的部分没有边,那这个图就是二分图,二分图是特殊的图. 匹配: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配. 极大匹配(Maximal Ma

Zookeeper简单概念介绍

过去,每个应用都是一个CPU.一个主机上的单一系统.然而今天,随着大数据和云计算时代的到来,不论什么相互独立的程序都可以运行在多个计算机上.然而面临的问题是,协调这些集群的系统比在单一主机上要复杂的多.因此对于开发人员来说.非常难在集中精力来关注他们的系统逻辑上,大部分的时间都花费在了协调这些集群系统上.Zookeeper的出现就攻克了这个问题,让开发人员可以集中精力在系统逻辑上,而免于协调这些集群计算机的运行情况.Zookeeper暴漏了一套简单的额API,可以让开发人员实现公共须要协调的任务

SQL简单概念了解

一.SQL的概念 数据库中进行操作的脚本,称为sql,结构化查询语言,当前关系型数据库都支持使用sql语言进行操作,可以通过sql操作oracle,sql,server,mysql,sqlite等关系型数据库. 二.SQl语句主要分为: DQL:数据查询语言,用于对数据的查询(如select) DML:数据操作语言,用于对数据的增加,删除,修改(如insert.update.delete) DCL:数据的控制语言,进行授权与权限的回收(grant,transaction--放到数据的高级里面进行

大数据学习之一——了解简单概念

1.大数据是什么?特点 大数据:是一种规模非常大的,在分析.管理.存储和获取等方面都超出了传统的数据库软件所具有的功能处理范围的巨大数据的调集. 特征:1.海量的数据规模(Volume) 2.数据类型多种多样(Variety) 3.快速的数据流转和动态的数据体系(Velocity) 4.巨大的数据价值(Value) 2.数据仓库是什么?Datawarehouse 数据仓库,英文名称Data Warehouse,是面向主题的.集成的.稳定的.面向时间的数据集合.是单个数据存储. 数据仓库中有OLT