王定桥的专栏

对知识保持敬畏之心,修行之路漫漫,不急不躁!

数据结构与算法(Python)——常见数据结构Part5(二叉搜索树BST和AVL)

写在前面 在上一节part4我们熟悉了二叉树结构,以及其遍历算法,本节将继续学习常见的树结构,包括二叉搜索树和一种自平衡的二叉搜索树AVL。 1. 二叉搜索树 二叉搜索树(Binary Search Tree):二叉查找树,也称二叉搜索树、有序二叉树(ordered binary tre...

2018-02-06 20:30:08

阅读数 530

评论数 1

数据结构与算法(Python)——常见数据结构Part4(二叉树)

写在前面 在上一节part3我们熟悉队列结构,本节将熟悉应用广泛的树结构。我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。 1. 树 1.1 树的直观感受 树是一个广泛应用的数据结构,即使未开始学习这个数据结构,我们在生活或者计算机...

2017-12-21 17:31:02

阅读数 603

评论数 0

数据结构与算法(Python)——常见数据结构Part3(队列和循环队列)

写在前面 在上一节part2我们熟悉了栈结构,本节继续对其他常见数据结构进行总结。我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。 1. 队列 1.1 一般队列 同上一节栈类似,队列(Queue)结构也是插入和删除元素受到限制的线性...

2017-12-20 17:19:52

阅读数 543

评论数 0

数据结构与算法(Python)——常见数据结构Part2(栈和递归)

写在前面 在上一节part1我们熟悉数组和链表,本节继续对其他常见数据结构进行总结。我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。 1. 栈 栈(stack)也是一种线性结构,与数组不同的是,栈限定了只能在线性表的一端,例如尾部进入插入...

2017-12-16 20:35:36

阅读数 606

评论数 0

数据结构与算法(Python)——常见数据结构Part1(数组和链表)

写在前面 本节对常见数据结构做一个预览,我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。 1.数组 数组是我们要学习的第一个线性结构(Linear structure),所谓线性结构,指的是在数据有限集合中,每个数据元素都有一个确定的位置...

2017-12-09 14:24:14

阅读数 1983

评论数 0

数据结构与算法(Python)-一般概念和算法效率分析

写在前面前面学习完了Python基础内容后,从本节开始正式学习数据结构与算法相关内容。这是一个比较复杂的主题,一般分为初级、高级、以及专门的算法分析三个阶段来学习,因此我们也需要循序渐进。本节主要熟悉数据结构与算法中一般概念,然后熟悉算法效率分析的大O记法,知识结构如下图所示:什么是算法?1)算法...

2017-09-24 15:50:25

阅读数 1813

评论数 0

数据结构与算法(Python)-Python快速入门篇4

写在前面本节是Python入门篇的最后一篇了,通过本节我们将会熟悉Python模块、包的使用,同时了解和养成书写Pythonic代码的习惯。主要内容如下图所示:模块和包1) 模块的定义和名字在Python中一个脚本(Script)是一个将要被当做主模块(main)执行的python文件。模块(Mo...

2017-09-18 13:10:57

阅读数 1140

评论数 0

数据结构与算法(Python)-Python快速入门篇3

写在前面对于简单的任务,我们可以利用一些函数,按照任务处理的流程书写代码来完成需求,这种方式称之为过程式编程(procedural programming);但是对于复杂的系统,如何有条理的将每个模块的代码内聚起来,如何清晰和简洁地表达各个模块之间的交互,就需要一种新的指导思想,面向对象编程(ob...

2017-09-10 18:58:29

阅读数 1898

评论数 0

数据结构与算法(Python)-Python快速入门篇2

写在前面紧接着上一节python入门1,本节还是继续学习Python的必备知识。具体的知识结构图如下所示:函数和作用域1)函数定义python中函数定义由关键字def开始,例如定义一个产生斐波拉契数列的函数如下:def fib(n): """Print a F...

2017-09-03 16:18:22

阅读数 3498

评论数 0

数据结构与算法(Python)-python快速入门篇1

写在前面python语言以其语法简洁(代码量比java开发的程序少3-5倍,比c++少5-10倍[^1])、快速原型开发(prototyping)以及庞大第三方库的支持,广泛应用于多个领域,成为了一门很流行的语言。我们这里使用Python,可以抛开其他像C++/java这些语言本身的复杂性,把精力...

2017-08-27 16:16:37

阅读数 4879

评论数 0

数据结构与算法(Python)-前篇

接触计算机学习已经9年了,零零碎碎学习了很多理论和技术,现在回过头来才发现,能够培养计算机专业素养的基础学科也就那么多,其中数据结构和算法分析,就是一个核心课程。在实际工作过程中,很多时候会遇到庞大的业务需求,项目计划排的满满的,项目进度一直在和市场上同类竞争产品赛跑。一般开发人员的日常都被繁琐的...

2017-08-27 11:40:39

阅读数 971

评论数 0

OpenGL学习脚印:伽马校正(Gamma Correction)

写在前面 由于CRT,LED等显示设备显示颜色时并非按照线性方式工作,因此我们在程序中输出的颜色,最终输出到显示器上时会产生亮度减弱的现象,这种现象在计算光照和实时渲染时对图形质量有一定影响,需要我们加以处理。本节将熟悉Gamma校正的概念,并通过点光源的示例来表现Gamma校正对图形效果...

2016-10-30 21:35:29

阅读数 5620

评论数 0

OpenGL学习脚印:Blinn-Phong光照模型

写在前面 在前面基础光照部分,我们学习了Phong Shading模型,Blinn-Phong模型对Phong模型的镜面光成分进行了改进,虽然在物理上解释没有Phong好,但是能更好地模拟光照。本节代码可以在我的github下载。 本节内容整理自: 1.www.learnope...

2016-10-29 16:01:56

阅读数 5238

评论数 0

OpenGL学习脚印: 反走样初步(Anti-aliasing basic)

写在前面 目前,我们绘制的图形中存在瑕疵的,观察下面这个立方体: 仔细看,立方体的边缘部分存在折线,如果我们放大了看,则可以看到这种瑕疵更明显:这种绘制的物体边缘部分出现锯齿的现象称之为走样(aliasing)。反走样(Anti-aliasing)是减轻这种现象的方法。反走样本...

2016-10-16 16:17:28

阅读数 4546

评论数 0

OpenGL学习脚印:创建更多的实例(instancing object)

写在前面 前面我们学习了模型加载的相关内容,并成功加载了模型,令人十分兴奋。那时候加载的是少量的模型,如果需要加载多个模型,就需要考虑到效率问题了,例如下图所示的是加载了400多个纳米战斗服机器人的效果图:渲染一个模型更多的实例,需要使用到实例化技术,就是本节要介绍的instancing...

2016-10-04 14:23:40

阅读数 4680

评论数 0

OpenGL学习脚印:几何着色器(geometry shader)

写在前面 一直以来我们使用了顶点着色器(vertex shader)和片元着色器(fragment shader),实际上OpenGL还提供了一个可选的几何着色器(geometry shader)。几何着色器位于顶点和片元着色器之间,如果没有使用时,则顶点着色器输出到片元着色器,在使用几...

2016-10-02 22:46:36

阅读数 8484

评论数 3

OpenGL学习脚印: uniform blocks在着色器中的使用

写在前面 目前,我们在着色器中要传递多个uniform变量时,总是使用多个uniform,然后在主程序中设置这些变量的值;同时如果要在多个shader之间共享变量,例如投影矩阵projection和视变换矩阵view的话,仍然需要为不同shader分别设置这些uniform变量...

2016-10-01 19:18:56

阅读数 4228

评论数 0

OpenGL学习脚印:缓冲对象相关函数的使用(buffer object function usage)

写在前面 OpenGL中还包含除了我们前面介绍的VAO,VBO,EBO等其他类型的缓冲对象。关于如何使用这些缓冲对象的手册或者参考书籍上解释得非常详细,但是阅读起来确实很枯燥无味。 本文将通过简洁、可靠的例子说明一些重要方法的使用,以辅助学习这些方法。本文的目的不是写成详细而厚重的...

2016-09-25 17:00:00

阅读数 5195

评论数 2

OpenGL学习脚印: 环境纹理映射(environment mapping)

写在前面 上一节初步学习了使用cubeMap创建天空包围盒,本节继续深入Cubemap这个主题,学习环境纹理贴图。本节示例程序均可以从我的github下载。 本节内容整理自: 1.www.learnopengl.com cubemaps 环境纹理贴图同上一节的Cubemap创建...

2016-09-16 21:41:40

阅读数 5161

评论数 3

OpenGL学习脚印:立方体纹理和天空包围盒(Cubemaps And Skybox)

写在前面 之前学习了2D纹理映射,实际上还有其他类型的纹理有待我们进一步学习,本节将要学习的立方体纹理(cubemaps),是一种将多个纹理图片复合到一个立方体表面的技术。在游戏中应用得较多的天空包围盒可以使用cubemap实现。本节示例程序均可以在我的github下载。 本节...

2016-09-11 22:14:44

阅读数 10674

评论数 2

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