自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (14)
  • 收藏
  • 关注

原创 06多段代码复杂度合成规则

本文系统介绍了算法复杂度分析中的三大核心规则: 相加原则(顺序执行代码取最高阶复杂度) 相乘原则(嵌套执行代码取复杂度乘积) 取最大原则(分支结构取最坏情况复杂度) 通过具体代码示例,详细演示了如何应用这些规则进行复杂度合成,并强调了实际分析中需关注增长趋势、忽略常数项和低阶项的核心思想。最后通过综合示例展示了多规则组合应用的方法,指出当n和m都很大时,$O(m×n)$通常是主导项。这些规则为分析复杂算法的时间复杂度提供了系统化方法。

2025-08-18 18:03:10 329

原创 05空间复杂度基础教程

摘要 空间复杂度衡量算法运行时临时占用的存储空间大小,反映内存需求随输入规模n的变化趋势,用大O表示法表示为S(n)=O(f(n))。它由固定部分(O(1))和可变部分(依赖输入规模)组成,主要关注后者,如动态内存分配和递归调用栈。 计算方法包括统计固定空间(常数)、动态空间(与n相关)和递归栈空间,取峰值并忽略低阶项。常见类型有O(1)(常数空间)、O(n)(线性空间)、O(n²)(平方空间)和O(logn)(对数空间)。分析时需识别变量与数据结构,判断其与n的关系。 空间复杂度与时间复杂度不同,前者关注

2025-08-18 18:00:18 270

原创 04时间复杂度计算方法

本文介绍了时间复杂度计算的基本步骤和常见循环结构的时间复杂度分析。首先确定算法中的基本操作,统计执行次数后忽略低阶项和常数因子,最终用大O表示法表示。重点分析了单层循环($O(n)$)、双层嵌套循环($O(n^2)$)、三层嵌套循环($O(n^3)$)、变量相关循环和对数型循环的时间复杂度计算。提供了常见代码结构的时间复杂度对照表,强调要关注最高阶项,忽略常数与低阶项。总结指出时间复杂度计算的核心在于统计循环或递归语句的总操作次数,并用大O符号简化表示。

2025-08-16 21:41:25 387

原创 03算法时间复杂度分析——大O、大Ω、大θ、小o,小ω

本文系统介绍了算法复杂度分析中的渐进表示法。大O表示法描述函数增长上界(最坏情况),大Ω表示下界(最优情况),大θ则同时确定上下界(精确阶数)。小o和小ω分别表示严格低阶和高阶关系。这些符号在算法分析中各有侧重:大O用于最坏时间复杂度估计,大Ω用于最优情况分析,大θ提供精确复杂度描述,而小o和小ω强调严格的大小关系。通过数学定义和对比表格,清晰展现了五种符号的区别与联系,为算法效率评估提供了严谨的理论工具。

2025-08-16 19:00:04 943

原创 02时间复杂度基础

本文介绍了时间复杂度的概念及其大O表示法。时间复杂度衡量算法执行时间随输入规模的增长速度,大O表示法则描述最坏情况下的时间上界,关注主导增长趋势。文章列举了常见时间复杂度类型(O(1)、O(logn)、O(n)、O(nlogn)、O(n²)、O(2ⁿ)、O(n!)),通过示例和蛋糕比喻形象说明其差异。大O表示法能简化分析、比较算法效率和指导优化,对选择合适算法至关重要。理解时间复杂度有助于开发者评估算法性能,优化程序效率。

2025-08-15 11:29:21 814

原创 01数据结构与算法基本概念

摘要:数据结构是数据的组织与存储方式(如数组、链表等),算法是解决问题的有序步骤。二者相辅相成:数据结构是算法的基础,算法作用于数据结构。算法设计追求正确性和效率(时间复杂度与空间复杂度),通过合理选择数据结构可优化程序性能。正确性确保算法在所有合法输入下正确运行,而效率则通过大O符号衡量运行时间和空间消耗。

2025-08-15 11:12:09 285

原创 python基础知识思维导图(三)

2024-05-27 20:14:43 173

原创 python基础知识思维导图(二)

第二部分的思维导图。

2024-05-16 14:47:40 163

原创 python基础知识思维导图(一)

最近将Python的基础知识温习了一遍。

2024-05-14 18:22:46 164

原创 Spine深入学习 —— 换装

数据对象是无状态的,可在任意数量的骨架实例间共用。有对应实例数据的数据对象类名称以“Data”结尾,没有对应实例数据的数据对象则没有后缀,如附件、皮肤及动画。实例对象有许多属性与数据对象相同。数据对象中的属性代表装配姿势,通常不会改动。实例对象中的相同属性表示播放动画时该实例的当前姿势。每个实例对象保有一个其数据对象参考,用于将实例对象重置回装配姿势。例如,SkeletonData是数据对象,而Skeleton是实例对象。

2023-11-29 15:36:30 1833

原创 Spine深入学习 —— 动画

在几乎所有情况下, 都建议使用动画状态API而非时间轴API. 与底层的时间轴API相比, 动画状态API会让诸如在某段时间内应用动画、排队动画、mix动画、以及同时应用多个动画等任务变得更加容易. 动画状态API内部使用的也是时间轴API, 因此可以将其看作是时间轴API的封装器.如果在前一动画和当前动画之间定义了混合动画时间,则当前动画将在混合动画时间上混出,让动画过渡更流畅。按时间顺序应用动画, 队列待播放的后续动画, 在动画间混合(淡入淡出), 以及在各动画之上相互堆叠应用多个动画(动画分层).

2023-11-28 15:51:03 1644

原创 Spine深入学习———— 渲染

数据有了之后,就开始渲染。

2023-11-27 16:35:12 700

原创 cocos2dx DrawNode

cocos2dx 两种绘图方式。

2023-11-24 17:57:53 246

原创 Spine深入学习 —— 数据

由于远处的物体可能只产生很少的片段,OpenGL从高分辨率纹理中为这些片段获取正确的颜色值就很困难,因为它需要对一个跨过纹理很大部分的片段只拾取一个纹理颜色。多级渐远纹理背后的理念很简单:距观察者的距离超过一定的阈值,OpenGL会使用不同的多级渐远纹理,即最适合物体的距离的那个。可以通过仅约束变换的子集(例如,仅限制缩放或剪切)来创建有趣的效果。为更新世界变换,本质是触发骨骼位置的计算,由于骨骼位置可能发生旋转偏移,其对应的子骨骼也会受到影响,因此需要更新世界变换重新计算所有骨骼的最新坐标位置。

2023-11-24 14:39:59 2817 1

原创 cocos2dx 三轴螺旋仪

陀螺仪的作用简单点说就是可以跟踪位置变化,只要你在某个时刻得到了当前所在位置,然后只要陀螺仪一直在运行,根据数学计算,就可以知道你的行动轨迹。Cocos2dxAccelerometer是继承于类。该函数处理数据,然后抛给cocos的事件。主要使用的是CoreMotion框架。开启不同设备的加速计,然后进行监听。设置陀螺仪间隔(cocos没有)设置磁力计间隔(cocos没有)加速计事件,然后将数据抛给。(安卓的传感器监听事件)

2023-11-23 17:16:55 699

原创 cocos2dx ​​Animate3D(三)

一些总结。

2023-11-22 16:40:13 1271

原创 cocos2dx ​​Animate3D(二)

3D翻页特效,从右下角往左上角翻。3D效果tiles跳跃。

2023-11-22 16:39:05 503

原创 cocos2dx ​​Animate3D (一)

3D相关的动画都是继承Grid3DAction本质上是用GirdBase进行创建动画的小块。

2023-11-22 16:26:11 486

原创 TiledMap 浅谈

对于等距地图,所有对象的形状(矩形、点、椭圆形、多边形、折线)都是投射到相同的坐标空间的。ValueMap类型的别名是std::unordered_map,unordered_map也是C++的容器类,它是一种无序的map类型,map是“键-值”对类型。ValueVector类型的别名是std::vector,vector是C++的容器类,它能够存放任意类型的动态数组,std是命名空间。注意,对应的图块集中,GID是延续之前的,也就是从1开始到当前图集的最后一个,下一个图集第一个是延续上一个图集的。

2023-09-08 14:35:35 2540

原创 浅谈Lua协程和函数的尾调用

虽然不经常用到协程,但是也不能谈虎色变。同时,在有些场景,协程会起到一种不可比拟的作用。所以,了解它,对于一些功能,也会有独特的思路和想法。

2023-08-28 14:01:51 1075

原创 # Lua与C++交互(二)———— 交互

如果需要深入了解Lua,强烈建议阅读《lua设计与实现》。

2023-08-22 15:09:22 1426

原创 Lua与C++交互(一)————堆栈

Lua本身是用C语言实现的,它是跨平台语言,得益于它本身的Lua虚拟机。虚拟机相对于物理机,借助于操作系统对物理机器(CPU等硬件)的一种模拟、抽象,主要扮演CPU和内存的作用。虚拟机的主要职责就是:执行字节码中的指令,管理全局状态(global_state)、数据栈(StackValue)和函数调用链状态(CallInfo)可以理解成,lua虚拟机就是一个独立的空间,它会维护Lua的所有运行。

2023-08-21 16:17:06 1831

原创 浅谈cocos2dx渲染方式

实际上,localZOrderAndArrival在addChild的时候就会生成一个,在前面addChild的时候,生成的会小于后面addChild的。CustomCommand是所有命令中最简单的一个,也是最灵活的一个,绘制的内容和方式完全交由我们自己决定。我们一般globalZOrder都是设置为0,那么设置为0,这里就不会进行排序,那么节点渲染的顺序就是之前加入RenderCommon的顺序,也就是之前对子节点排序的顺序。后续,会判断下一条的指令的ID是否和上一个相同,如果相同,那么就继续放入。

2023-02-28 20:55:01 1045

原创 Cocos2d-x 3D渲染技术 (三)

cocos2dx中的物理碰撞——AABB包围盒和OBB包围盒

2022-11-30 16:06:41 1213 1

原创 cocos2dx 3D物理相关知识点汇总

cocos2dx 3D和物理的知识汇总

2022-11-16 15:30:25 1375

原创 Cocos2d-x 3D渲染技术 (二)

要把游戏模型显示到屏幕需要经历五个空间。指模型对象所在的坐标空间,即建模软件的空间。一般在导出创建的模型时,将模型的的坐标设为(0,0,0),目的是为了保持和世界坐标重合,方便调整其在世界坐标中的位置。游戏所在的场景就是世界空间。将模型放到世界空间之后,可以对模型对象进行平移,缩放,旋转等操作,本质上就是通过矩阵的转换算法实现的。(模型举证)通过虚拟摄像机观察世界空间。在游戏中,可以操作视角看到周围的物体。本质就是操作虚拟摄像机,将视线内的物体转换到摄像机的坐标系中。观察空间也就是摄像机所观察的空间,是将物

2022-11-10 19:52:41 1384

原创 Cocos2d-x 3D渲染技术 (一)

最近因为工作需要阅读《Cocos2D-X 3.X 3D图形学渲染技术讲解》这本书所做的笔记。

2022-11-09 16:46:59 755

原创 cocos2dx——多段式进度条实现思路

有时候,会有一些多段的进度条开发。功能简单,实现的办法也很多。技术难点不高,但是思路得清晰。有些游戏开发需求,思路只要对了,方向对了,就七七八八了。毕竟涉及到技术的其实也不是那么多。

2022-11-04 15:28:26 635

原创 cocos2dx作茧自缚修改creator_to_cocos2dx(二)

坐标的问题   按照之前的修改之后,发现在代码里面加入了新的子节点,坐标全不对了。查看CreatorReader.cpp代码发现有个adjustPosition的函数,实现很简单,这里不做叙述,然后将其导入lua中,发现子节点添加坐标没有问题了。这里注意是在代码里面新建然后加入读出来的creator文件中会出的问题。    同理,在导出animotion给lua使用的时候,发现坐标同样出了问题,于

2017-12-15 18:00:59 1301

原创 cocos2dx作茧自缚修改creator_to_cocos2dx(一)

前言  反正是作死,新项目选择了cocos2dx+lua,ui编辑器用的是cocoscreator,还是义无反顾的使用。然后现在回想起来,真心是一路坑。但是,在使用的时候,触控的大神已经能支持导出绝大部分的功能了。我也只能在他们的基础上小打小闹下。   先讲个尴尬的事情,刚开始用creator的时候,一个程序给我说他打开creator文件要10多分钟,然后我愣是没发现问题,没办法的情况下,我把工程

2017-12-14 21:58:31 5072 1

原创 申请TexturePacker免费注册码(TP:FF7D2841)

TP:FF7D2841

2015-11-25 17:39:52 959

原创 每日一个OpenGL API (二)

glVertexAtrribPointervoid glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer);第一次见到这个函数是《opengl权威指南》里面,它在里

2015-10-27 15:09:05 814

原创 每日一个OpenGL API (一)

glBufferData          首先看看函数原型:  void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);     创建缓存区对象之后,就需要空间去保留这些数据,那么glBufferData就来完成这个任务。官方文档是这样写的:     crea

2015-10-26 15:39:57 719

原创 c++输出输入流

我想我还没到那个水平去仔细研究每个的工作原理,下面的这些就是一个总结,很基础的东西。一. 输出流1. cout  这个东西我们用的太多了。他是重载了 2. cerr对应标准错误流,不进入缓冲区,也就是说它是直接到达屏幕,不需要等待缓冲和换行字符。3. clog 和cerr一样,唯一区别就是clog要进入缓冲区。4. put()函数,cout对象的成员函数。cout.put();

2015-09-16 17:40:23 604

原创 类的构造函数(二)

一 . 浅拷贝和深拷贝先看一段代码class A{public: A() { _text = new char(100); } ~A() { delete[] _text; }private: char * _text;};int main(){ A a; A b(a); return 0;}运行程序,会发现触发了一个断点,也就是程序崩溃

2015-09-15 14:29:00 520

原创 类的构造函数(一)

一 . 无参数的构造函数无参数的构造函数就是不带任何参数的构造函数。如果你在创建类的时候,没有写任何的构造函数,那么编辑器会默认的创建一个构造函数。当然,也可以手动写一个无参数的构造函数。class A{public: A() { }};二 . 一般构造函数 带有参数的构造函数,一个类可以有多个这种的构造函数。但是必须同名不同参数。就像重载一样的。class A

2015-09-14 15:25:06 497

原创 指针和二维数组

指针和二维数组首先定义一个数组:1 int a[5][3] = { {1,6,11},2 {2,7,12},3 { 3,8,13 },4 { 4,9,14 },5 { 5,10,15 }6 };随便定义的一个二维数组i = 5, j

2015-09-11 18:22:43 440

原创 类的大小

首先来看一个空类的大小:1 class A2 {3 4 };猜猜sizeof(A)的大小是多少?0?不是,记得我刚开始找工作的时候,第一次遇到这种问题,然后我华丽丽的回答0,然后我就华丽丽的被pass了。(往事很心酸)。那么不是0,会是多少呢?正确答案应该是1,以前我都是死记硬背的。让我说出原因,我还真说不出来。但是,我们要知其然更要知其所以然,所以,查资料。于是

2015-09-11 18:21:57 479

原创 函数参数

一.三种传参方式三种基本的传参方式:值传递,指针传递,引用传递1. 值传递首先来看一段代码: 1 void SwapByVal(int a,int b) 2 { 3 int temp = a; 4 a = b; 5 b = temp; 6 } 7 int main() 8 { 9 int a = 5,b = 9;10 S

2015-09-11 18:20:23 466

原创 cocos2dx ActionTimeline setLastFrameCallFunc

lua_cocos2dx_ui_manualstatic 中写入static int lua_cocos2dx_ActionTimeline_setLastFrameCallFunc(lua_State* L){ if (nullptr == L) return 0; int argc = 0; cocostudio::timeline::ActionTimeline* self

2015-07-21 10:32:48 1862

数据结构复习重点归纳笔记

关于数据结构复习的一些重点的归纳,自己看看就知道了,呵呵

2010-12-28

C、C++头文件介绍

关于c,c++头文件的介绍,很实用的东西

2011-06-02

Visual_C++MFC最佳新手教程

这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。万事开头难,为了帮助朋友们更快的掌握VC开发,下面我将自己的一点体会讲一下: 1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字符界面程序的编写。这样做的目的主要是增加对语言的熟悉程度,同时也训练自己的思维和熟悉一些在编程中常犯的错误。更重要的是理解并能运用C++的各种特性,这些在以后的开发中都会有很大的帮助,特别是利用MFC进行开发的朋友对C++一定要能熟练运用。

2012-04-15

白手起家win32SDK

一个很好的windows sdk学习的资料

2012-05-05

动态定义一维、二维、三维数组

动态定义一维、二维、三维数组,里面有代码,可以仿照的 呵呵

2011-12-27

Microsoft_Visual_Studio_C++_2010入门教程(修订版)

关于\Microsoft_Visual_Studio_C++_2010的一些常用的使用方法

2010-12-06

多机调度问题C++语言解决的源代码

多机调度问题C++语言解决的源代码,可以看看一下

2011-12-27

微机原理复习的资料总结

第一章 计算机基础知识 本章的主要内容为不同进位计数制计数方法、不同进位制数之间相互转换的方法、数和字符在计算机中的表示方法、简单的算术运算以及计算机系统的组成。下边将本章的知识点作了归类,图1为本章的知识要点图,图1.2为计算机系统组成的示意图。

2011-11-27

管理系统需求分析

客户是公司最宝贵的资源,为了更好的发掘老客户的价值,并开发更多新客户,XX公司决定实施客户关系管理系统。希望通过这个系统完成对客户基本信息、联系人信息、交往信息、客户服务信息的充分共享和规范化管理;希望通过对销售机会、客户开发过程的追踪和记录,提高新客户的开发能力;希望在客户将要流失时系统及时预警,以便销售人员及时采取措施,降低损失。并希望系统提供相关报表,以便公司高层随时了解公司客户情况。 客户服务是一个涉及多个部门,存在一定流程的工作。客户服务水平的高低决定着公司的核心竞争力。该客户关系管理系统应提供一个客户服务在线平台,使客户服务处理过程中相关人员可以在线完成服务的处理和记录工作。

2011-11-15

数据结构严蔚敏PPT

完全免费的严的数据结构的ppt,我也是其他地方 找到的

2010-12-29

数据结构严版教程的代码

应该网上很多的,这是我们老师给我们的,给大家共享 下 呵呵

2010-12-29

VC++之MFC类库中文手册

不多说,适用于不想看英文版的msdn中的mfc函数的人

2012-05-05

数据结构课件(绝对经典)

这是我们老师的数据结构的课件,绝对经典,自己下下来看看就知道的

2011-01-04

可存储式电子琴实验报告

用8253 8255 以及开关控制的可存储式电子琴的实验报告

2011-11-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除