在频繁地调用一个函数时的时间复杂度问题
不断调用这个函数的时候会不断为那个形参重新开辟新的动态存储空间,这个开辟空间的过程会产生时间消耗吗?会增加时间复杂度吗?...
不断调用这个函数的时候会不断为那个形参重新开辟新的动态存储空间,这个开辟空间的过程会产生时间消耗吗?会增加时间复杂度吗?
展开
3个回答
2013-12-11
展开全部
OpenGL 函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。从图1可以看出,gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。下面逐一对这些库进行详细介绍。 1.OpenGL核心库 核心库包含有115个函数,函数名的前缀为gl。 这部分函数用于常规的、核心的图形处理。此函数由gl.dll来负责解释执行。由于许多函数可以接收不同数以下几类。据类型的参数,因此派生出来的函数原形多达300多个。 核心库中的函数主要可以分为以下几类函数: (1)绘制基本几何图元的函数。如绘制图元的函数glBegain()、glEnd()、glNormal*()、glVertex*()。 (2)矩阵操作、几何变换和投影变换的函数。如矩阵入栈函数glPushMatrix()、矩阵出栈函数glPopMatrix()、装载矩阵函数glLoadMatrix()、矩阵相乘函数glMultMatrix(),当前矩阵函数 glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和 glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport()等等。 (3)颜色、光照和材质的函数。如设置颜色模式函数glColor*()、glIndex*(),设置光照效果的函数glLight*() 、glLightModel*()和设置材质效果函数glMaterial()等等。 (4)显示列表函数、主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、 glEndList()、glGenLists()、glCallList()和glDeleteLists()。 (5)纹理映射函数,主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、 设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()和glTetCoord*()等。 (6)特殊效果函数。融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*()。 (7)光栅化、象素操作函数。如象素位置glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式glPolygonMode(),读取象素glReadPixel()、复制象素glCopyPixel()等。 (8)选择与反馈函数。主要有渲染模式glRenderMode()、选择缓冲区glSelectBuffer()和反馈缓冲区glFeedbackBuffer()等。 (9)曲线与曲面的绘制函数。生成曲线或曲面的函数glMap*()、glMapGrid*(),求值器的函数glEvalCoord*() glEvalMesh*()。 (10)状态设置与查询函数。主要有glGet*()、glEnable()、glGetError()等。 2.OpenGL实用库The OpenGL Utility Library (GLU) 包含有43个函数,函数名的前缀为glu。 OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点。线、面开始。Glu 为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。此函数由 glu.dll来负责解释执行。OpenGL中的核心库和实用库可以在所有的OpenGL平台上运行。 主要包括了以下几种: (1)辅助纹理贴图函数,有gluScaleImage() 、gluBuild1Dmipmaps()、gluBuild2Dmipmaps()。 (2)坐标转换和投影变换函数,定义投影方式函数gluPerspective()、gluOrtho2D() 、gluLookAt(),拾取投影视景体函数gluP
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la
2013-12-11
展开全部
如果是静态的话,可能会快一点,比如在函数里加了static的变量,是存储在内存中的,每次函数执行完以后不会消失,如果只是单纯的简单变量的话,每次函数执行完以后计算机自己会把这个空间释放的,不用担心。做程序首先是要能实现功能。在此基础上再去实现优化,对于递归调用函数要注意堆栈的溢出。希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-11
展开全部
看是什么函数,,如果是周期函数就算耗费了时间,也能找回你想要的状态
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询