中国flash网站模板中心优秀建筑方案设计文本

web/2025/9/30 4:01:12/文章来源:
中国flash网站模板中心,优秀建筑方案设计文本,wordpress阿里云配置文件,编程培训心得基于C语言的凸包算法实现非计算机专业#xff0c;代码有些的不好的地方#xff0c;大佬轻喷^ _ ^根据要求#xff0c;需要使用C语言实现凸包算法——Graham扫描法#xff0c;本文将从算法理解、实现思路、遇到的问题及其解决方案三个方面来阐述实现过程。算法理解凸包算法G…基于C语言的凸包算法实现非计算机专业代码有些的不好的地方大佬轻喷^ _ ^根据要求需要使用C语言实现凸包算法——Graham扫描法本文将从算法理解、实现思路、遇到的问题及其解决方案三个方面来阐述实现过程。算法理解凸包算法Graham扫描法在不考虑排序算法的时间复杂度情况下算法核心程序的时间复杂度为 O ( n l o g n ) O(n log n)O(nlogn)其主要算法思想如下首先是预处理过程获得一组随机点集选取位于二维空间中左下角的点即在纵坐标(y)最小情况下横坐标(x)为最小的点P 0 P_0P0​ 。以该点位极坐标原点计算其余各点的极角θ \thetaθ并根据极角大小进行升序排序若极角相同则按极径大小按升序排列。由此得到一组按照极角排序的点集 { P 0 , P 1 , . . . , P n } \left\{P_0,P_1,...,P_n\right\}{P0​,P1​,...,Pn​}(如下图所示)。完成预处理之后即Graham算法的核心步骤主要通过栈的方式来实现凸包点的计算。首先将P 0 , P 1 P_0,P_1P0​,P1​两点压栈他们必然属于凸包上的点。然后进入迭代过程以栈顶元素A [ t o p ] A[top]A[top]和次栈顶元素 A [ t o p − 1 ] A[top-1]A[top−1]构成的向量a ⃗ \vec{a}a为基准计算其与当前P k P_kPk​点与栈顶元素A [ t o p ] A[top]A[top]构成的向量b ⃗ \vec{b}b的叉积 若结果为正(零)则 b ⃗ \vec{b}b 位于 a ⃗ \vec{a}a 的逆时针方向(共线)P k P_kPk​进栈 若结果为负则 b ⃗ \vec{b}b 位于 a ⃗ \vec{a}a 的顺时针方向 A [ t o p ] A[top]A[top]出栈 P k P_kPk​进栈直至扫描至最后一个点将 P 0 P_0P0​ 再次进栈是凸包闭合。由于要求顺时针输出凸包顶点则将栈中元素从栈顶向栈底依次输出即可。实现思路及过程根据Graham扫描法的算法理解将程序实现分为了随机点坐标初始化、极角计算及排序、Graham核心算法和结果输出四个模块共计8个函数进行编码实现。结构体定义// 点坐标typedef struct POINT {int x;int y;}Point;坐标初始化首先构造存储点坐标的结构体Point该结构体中仅包含横坐标x和纵坐标y。根据要求需要随机生成100个点使用宏定义点集大小(SIZE)为100。使用库下的rand()函数以当前系统时间为种子生成 0 ≤ x 50 , 0 ≤ y 50 0\le x50,0\le y500≤x50,0≤y50 的点并依次存入大小为SIZE的Point的类型的一维数组中。void InitPoint(Point* p) {int i;srand(time(0));for (i 0; i SIZE; i) {(p i)-x (int)(rand() % 50);(p i)-y (int)(rand() % 50);}}极角计算及排序首先选取点集中位于左下角的点采用的方法为先找出纵坐标 最小的坐标点(集)然后在其中找出横坐标 最小的坐标点记录该点位于原始点集的位置将其与第一个点进行交换。接着使用库下的atan()函数计算各点的极角并将其记录在double类型大小为SIZE的一维数组angle中令极坐标原点的极角 a n g l e [ 0 ] 0 angle[0] 0angle[0]0。使用冒泡排序算法对极角进行排序同时改变点集中各点的顺序。在排序是要考虑当极角相同时按极径从小到大排序。Graham核心算法根据算法分析结果定义一个Point类型的一维数组作为栈空间定义栈顶定位变量top用于标记栈顶元素在栈中的位置定义临时变量temp_point用记录当前扫描到的坐标点定义叉积计算函数返回值为布尔类型。当叉积为非负时返回true否则返回false。判断temp_point和栈顶元素次顶元素三个点组成的两个向量的方向若叉积返回值为正则将temp_point进栈否则将当前栈顶元素出栈继续判断现在的栈顶元素和次顶元素与temp_point三个点的向量叉积……得到包含所有凸包顶点的栈数组最后将 点进栈形成封闭凸包在形成封闭凸包前需要对 以及当前栈顶和次顶元素进行判断是否符合凸包结构若符合则将 进栈反之将当前栈顶元素出栈重复判断步骤直至符合为止。int myGraham(Point* p, Point* p_stack) {int top -1; //栈顶指针int p_index 0; //点索引Point temp_point;top; p_stack[top] p[0]; p_index; //pushtop; p_stack[top] p[1]; p_index; //pushwhile (p_index SIZE) {temp_point p[p_index];if (X(p_stack[top - 1], p_stack[top], temp_point)){top; p_stack[top] temp_point;//push}else {top--;//popcontinue;}p_index;}while (TRUE) {if (!X(p_stack[top - 1], p_stack[top], p[0])) {top--;}else {break;}}top; p_stack[top] p[0];return top;}结果输出为了使结果更直观定义了一个输出函数能够输出凸包顶点坐标并在二维坐标中显示点。运行结果来源oschina链接https://my.oschina.net/u/4355012/blog/4274913

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做淘宝那样的网站要多少钱商业网站建设规划范文

现代企业离不开数据,而数据的分析与应用更是成为企业走向成功的关键之一。然而,随着数据量的不断增长,传统的数据分析方法已经无法满足企业的需求。这时,智能数据分析系统应运而生,成为企业决策的得力助手。那么&#…

苏州建设网站市政中标项目手机网站怎么搭建

时间模块 UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC8。DST(Daylight Saving Time)即夏令时。 在Python中,通常有这几种方式来表示时间:1&…

职业生涯规划网站开发背景新东方教育培训机构

一、数值类型1,int 类型 4字节 。备注:一个字节8位,即有32位,存在一个符号位。所以能存的数值大小为-2的31次方到2的31次方;2,tinyint 类型 1字节。3,smallint 类型 2字节4,medi…

网站开发 图片存放网站建设流程六个步骤

背景在使用PyTorch深度学习框架的时候,不管是训练还是测试,代码中引入PyTorch的第一句总是:import torch在Gemfield前述专栏文章里,我们已经得知,torch/csrc/stub.cpp链接libshm.so、libtorch_python.so、libcaffe2_gp…

网站开发需要20万网站后台登陆地址

小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有 n 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所有的货物最终摆成一个大…

无限空间 网站WordPress又拍云联盟代码

javascript高级-数组的使用方法 改变原数组返回一个新数组或不改变原数组的等应用场景,如下这些方法在实际项目中通常会用上 getArrlen() {//1.改变原数组的方法let arr [1, 2, 3];arr.push(6); //给数组最后面的添加元素console.log(push, arr); //[1,2,3,6]arr.pop(); //删…

手机百度提交入口上海关键词排名优化怎样

Inception V1 GoogLeNet结构(Inception V1) 输入为224x224的RGB图像,‘#3x3 reduce’和‘#5x5 reduce’表示3x3和5x5卷积之前1x1的卷积核的个数。 转载于:https://www.cnblogs.com/Peyton-Li/p/11201038.html

网站文章更新频率软件开发外包公司

场景介绍 本章节将向您介绍如何使用地图的手势。 Map Kit提供了多种手势供用户与地图之间进行交互,如缩放、滚动、旋转和倾斜。这些手势默认开启,如果想要关闭某些手势,可以通过MapComponentController类提供的接口来控制手势的开关。 接口说明 以下是地图的控件和手势相…

修改网站备案信息永州网站制作

前言 本文介绍激光雷达与相机进行多层次融合,包括数据级融合、特征级融合和BEV级融合。 融合后的BEV特征可以支持不同的任务头,包括语义分割、实例编码和方向预测,最后进行后处理生成高清地图预测,它是来自ICRA 2024的。 会讲解…

哈尔滨专业网站制作设计阿里巴巴做网站教程

对于每个人来说,计算机都是至关重要的家用电器. 因为使用计算机可以使我们的业余生活丰富多彩. 随着Internet的普及,越来越多的用户开始学习自己使用计算机. 但是,操作中仍然存在很多问题,只要每个人都学会了远程控制,…

手机触屏版网站襄阳网站建设知名品牌

二、运算符与程序流程控制 1、运算符 1.1 算术运算符 算术运算符用于组织整数类型和浮点类型的数据,有一元运算符和二元运算符之分。 一元算术运算符有两个:(正号)和-(负号),例如&#xff1…

广州网站建设 讯度网络wordpress presscore

Magnet是一款用于Mac操作系统的窗口管理工具,它可以帮助您快速和方便地组织和管理应用程序窗口,以提高您的工作效率和多任务处理能力。 以下是Magnet的一些主要功能和特点: 窗口自动调整:Magnet允许您通过简单的拖放操作或使用快…

网站开发类的合同范本wordpress不知道用户名和密码

工资是指劳动者付出体力或脑力劳动后所得的对价,体现的是劳动者创造的社会价值。自我国劳动争议仲裁制度建立以来,工资(劳动报酬)争议一直是劳动争议的热点。如何准确把握工资标准的认定,对维护劳动者合法权益、构建和谐稳定的劳动关系具有重…

遵义做网站优化汕头建网站

firefox浏览器中silverlight无法输入问题今天用firefox浏览silverlight网页,想在文本框中输入内容,却没想到silverlight插件意外崩溃了。google一下,发现这是firefox的设置问题,解决方法如下: 1、在Firefox浏览器地址栏…

水利建设管理司网站wordpress 扩展

前言 话说我一冲动买了512G固态硬盘,原本是装个ubuntu系统的,这个好装,但是用处太少,就像改成win10的 经历一堆坑之后,终于使用WTG安装好了 步骤 1.下载个WTG辅助工具 Windows To Go 辅助工具|WTG辅助工具 v5.6.1…

邢台网站制作市场互联网创业项目有哪些

1 DETR算法概述 ①端到端 ②Transformer-model 之前的方法都需要进行NMS操作去掉冗余的bounding box或者手工设计anchor, 这就需要了解先验知识,增加从超参数anchor的数量, 1.1 训练测试框架 一次从图像中预测n个object的类别 训练阶段我们…

手机网站建设如何网站建设与管理的策划书

大家好,我是大彬~ 今天跟大家分享知识星球小伙伴关于【非科班转码如何补基础】的提问。 往期星球提问整理: 读博?找工作? 性格测试真的很重要 想找一份实习工作,需要准备什么 球友提问: 大彬大佬&#xf…

网站备案安全吗网站建设与运营及营销服务

数据结构 ​ 是计算机储存、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素 利用一些方式实现一些项目在内存中奖数据存储起来。 1、数组 2、链表 3、树 算法 ​ 就是定义良好的计算过程,它取一个或一组的值为输入,并…