数据结构
定义数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的 逻辑结构 和数据的 物理结构 以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为 逻辑结构 和 存储结构 。
数据的 逻辑结构 和 物理结构 是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的 逻辑结构 ,而算法的实现依赖于指定的 存储结构 。
数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是 分解 与 抽象 。通过 分解 可以划分出数据的3个层次;再通过 抽象 ,舍弃数据元素的具体内容,就得到 逻辑结构 。类似地,通过 分解 将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为 数据结构 。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进 ...
TA是怎样炼成的
前言TA 是 Technical Artist 的缩写,就是游戏行业的技术美术岗位。TA 是为项目解决问题的岗位,它的职责是节省项目成本,缩短项目周期,提升项目效果等。也为技术与美术作为沟通桥梁,所以才有的岗位细分方向。岗位细分的大方向可分为 程序向、美术向两大方向。细分又可分为工具、渲染、流程、动作等方向。
本文是对 霜狼的视频 的总结。
目标简单来说作为一个给其它岗位解决问题的职业,我们学习的第一个目标自然是锻炼自己解决问题的能力。
这个能力是短时间内学不来的,只有经历过大量的亲身实践才能积累下来。
实际上TA并不是所有部分都精通,大部分人都是多精一专。每一个领域都可以成为专家,无贵贱之分。
学习框架
基础部分
美术基础《精虫叔叔设计秘密01》[轮廓-轮廓长线条短线条变化]《设计入门教室系列》摄影:北京工业大学公开课:摄影的实用性与艺术性漫谈
程序基础网易公开课全套计算机专业课程,链接
学习方法:核心:深入解决问题这一中心,逐步解决你学习过程中遇到的问题进行锻炼。如:独立寻找学习资料。学会如何获取及筛选正确有用的信息。
入门阶段
渲染知识:《shader入门精要》《 ...
Base64加密原理
前言
在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理又了解多少?今天这篇博文带领大家了解一下Base64的底层实现。
正文Base64的由来目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输。那么,Base64到底起到什么作用呢?
在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现乱码情况。与此类似,网络上传输的字符并不全是可打印的字符,比如二进制文件、图片等。Base64的出现就是为了解决此问题,它是基于64个可打印的字符来表示二进制的数据的一种方法。
电子邮件刚问世的时候,只能传输英文,但后来随着用户的增加,中文、日文等文字的用户也有需求,但这些字符并不能被服务器或网关有效处理,因此Base64就登场了。随之,Base64在URL、Cookie、网页传输少量二进制文件中也有相应的使用。
Base64的编码原理Base64的原理比较简单,每当我们使用Base6 ...
Unity使用技巧
前言掌握一些Unity编辑器的小技巧,会让你开发以及使用更加快捷有效。
正文高亮选择在Scene面板右上角的Gizmo下拉列表中,可以通过设置Selection Outline选项决定是否在选中物体时显示边缘高亮的标识。
Pixel Perfect Camera在摄像机上挂载Pixel Perfect Camera组件能够使2D像素风格的游戏画面更加整洁清晰。此组件需要使用Package Manager安装2D Pixel Perfect包。
以Y轴为依据进行Sprite排序对于2D游戏,将Transparency Sort Mode (Edit > Project Settings > Graphics ) 设置为Custom Axis,然后设置Transparency Sort Axis,场景中的Sprite可以根据Y轴进行排序。如下图所示,当设置为(0,1,0)时,Y坐标相对较大的Sprite排在Y坐标相对较小的Sprite之下,当设置为(0,-1,0)时,则相反。
延迟销毁游戏对象默认情况下,使用Destroy()方法会立即销毁游戏对象,如果想延迟一段时间再 ...
VisualStudioCode中Settings Sync插件的基本用法
前言自己平常工作生活中偶尔折腾系统,或许是因为驱动或者其他原因导致系统重装了,vscode的插件与配置等每次都需要单独记录一下然后再重新配置一遍,发现可以使用Settings Sync插件可以直接同步配置和插件。
上传配置以及相关
首先在VSC中安装SettingsSync,安装完Settings Sync插件重启窗口之后按快捷键Shift + Alt + U准备上传你的配置,但是首次上传需要一个access token。
到GitHub个人设置创建一个新的access token。登录github,在[Personal access tokens]页面点击Generate New Token按钮
输入Token descriptiontoken的描述,勾选gist权限,
用新建的Access Token上传你的配置和扩展记录
回到vscode,在任意界面按 Alt + Shift + U,在对话框中输出刚才复制的 token。
再次按 Alt + Shift + U 完成配置上传,使用组合键 Alt + Shift + D 即可下载配置。
一切完 ...
SteamOS
前言SteamOS Beta 是 Steam 团队研发的 Linux 架构操作系统。该操作系统基于代号为 Debian Jessie 的 Debian 8 系统。它的工作始于 Debian 系统强劲的核心,并尽可能对其进行优化,使其拥有良好的客厅体验。最重要的是,它是开源的 Linux 平台,一切尽在您的掌控之内。您可以掌控您的系统,并且随心所欲地安装您想要的新软件或内容。
可以查看这个 SteamOS官方描述。
安装和自定义 SteamOSSteamOS 硬件需求如何?
处理器: Intel 或 AMD 64 位性能处理器内存: 4GB 或更多内存硬盘驱动器: 200GB 或更大磁盘空间显卡: NVIDIA 显卡 AMD 显卡(RADEON 8500 和更新) Intel 显卡附注事项: 安装需要 USB 端口UEFI 固件(推荐)
我该如何安装 SteamOS?您可以通过两种不同的方式安装 SteamOS。推荐方式就是自动安装方式:使用默认的磁盘配置进行安装。专业安装方式会使用 Debian 安装程序,允许您在经过自动安装步骤后进行自定义安装。请在以下安装方式 ...
Thunderbird问题归纳
前言Mozilla Thunderbird 非常的好用的邮件客户端,虽然很多人都习惯在网页上收发邮件,不过还是有很多资深网民喜欢用本地邮件客户端收发邮件,这款Thunderbird推荐给大家使用。它是经过对 Mozilla 的邮件组件的进行重新设计后的产品,它可整合多个网络邮箱于一体,随时都能拉取邮件到本地处理,或者随时发送邮件。简单易用,功能强大,个性化配置,Thunderbird 邮件客户端带给你全方位的体验。Thunderbird 支持 IMAP 、POP 邮件协议以及 HTML 邮件格式。轻松导入您已有的邮件账号和信息。内置 RSS 技术, 功能强大的快速搜索, 自动拼写检查等。
Thunderbird官网
使用配置技巧
用thunderbird接收非压缩包附件时候默认会自动打开附件作为邮件正文来阅读。但是对于经常接收大文本附件的人来说就不好用了,经常会因为附件太大把邮件卡死机。在工具–>首选项–>高级–>高级配置–>配置编辑器,找到 mail.inline_attachments,赋值选择 false。
默认thunderbird是将回复加在回复邮 ...
考研英语作文
前言考研英语的大纲要求:
要求根据所规定的情景或给出的提纲,写出一篇150词左右的英语说明文或议论文。提供的场景的形式一般为 图表 。共15分。
往年图表形式分析
年份
图表形式
主题
2010
柱状图
发展中国家和发达国家手机用户量增长情况对比
2011
柱状图
国内汽车市场部分品牌份额变化
2012
表格
某公司不同年龄人群的工作满意度调查
2013
柱状图
大学生兼职比例逐年级递增
2014
柱状图
20年间城市人口与农村人口的变化
2015
饼状图
居民春节期间花销比例情况
2016
饼状图
高校学生旅行目的调查
2017
折线图
博物馆数量和参观人数的变化
2018
饼状图
顾客就餐时的考虑因素
2019
柱状图
高校本科毕业生的去向变化
柱状图: Bar Chart表格: Table饼状图: Pie Chart折线图: Line Chart
结论:
主要考察数据图表;
既有动态的数据变化图(柱状图、折线图)又有静态的比例分配图(饼状图、表格)
话题聚焦生活场景与校园生活。
范文动态图以2010年的英语作文 ...
伪代码
前言伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。介于自然语言与编程语言之间。
它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是半角式化、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里,你可以使用任何一种你熟悉的文字,中文,英文 等等,关键是你把你程序的意思表达出来)描述出来。使用伪代码, 可以帮助我们更好的表述算法, 不用拘泥于具体的实现。
人们在用不同的编程语言实现同一个算法时意识到,他们的实现(注意:这里是实现,不是功能)很不同。
尤其是对于那些熟练于不同编程语言的程序员要理解一个 (用其他编程语言编写的程序的) 功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。
这样伪代码就应运而生了。
当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用虚拟 ...
GitHub提速方案
前言Github 是程序员必备的代码托管平台,上面有许多公开项目资源可以供学习者免费下载学习,但有时候在github用git clone 下载公开项目的文件时,速度特别慢,因此Github提速迫在眉睫。
Github提速方案为了解决上项目文件上传、下载速度慢的问题,翻越万里长城查阅资料,发现解决办法可以从 git clone 的域名入手。
实际上用 git clone 下载项目文件时使用的域名是 http://github.global.ssl.fastly.net ,非 http://github.com/ 。
因此,我们可以修改本地的 hosts 文件,在 hosts 文件中增加域名及域名解析对应的 ip,给该域名指定 ip 。
获取域名 IP有两种方法可以查询 github.global.ssl.fastly.net 该域名对应的 IP:
登录域名 的 ip 地址查询网页
http://github.global.ssl.fastly.net.ipaddress.com/
找到域名 github.global.ssl.fastly.net 对应的 I ...