《大话数据结构》(线性表)
Chapter 1 数据结构绪论数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
数据数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
数据元素数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
数据项数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。
数据对象数据对象:是性质相同的数据元素的集合,是数据的子集。
数据结构数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。
逻辑结构与物理结构按照视点的不同,我们把数据结构分为逻辑结构和物理结构。
逻辑结构逻辑结构:是指数据对象中数据元素之间的相互关系。逻辑结构分为以下四种:
1.集合结构
集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,它 ...
《C#图解教程》
Chapter6 方法Var关键字Var关键字并不是表示特殊变量。它只是句法上的速记,表示任何可以从初始化语句的右边推断出的类型。使用Var关键字有一些重要的条件:
只能用于局部变量,不能用于字段;
只能在变量声明中包含初始化时使用;
一旦编辑器推断出变量的类型,它就是固定且不能更改的。局部函数从C#7.0开始,可以在一个方法中声明另一个单独的方法。这样可以将嵌入的方法跟其他的代码隔离开来,所以它只能在包含它的方法内调用。与局部变量必须在使用之前进行声明不同,你可以在包含方法的任意位置声明局部函数。1234567891011 public int TestLocalFunc(int index) { int LocalFunc(int index) { return index * index; }i int results = LocalFunc(ind ...
《沉默的病人》
读后感 最近读到的书感觉都很奇怪,不知道是作者的意思还是发行商的意愿,每本书都被营销的特别厉害。我个人觉得封面上的“多少看似完美的夫妻,都在等待杀死对方的契机”,和本书真的一点关系都没有,甚至用在《鳄鱼的黄眼睛》上都会契合一些。我是以一本心理小说向的预期来读这本书的,没想到最后硬生生的变成了悬疑小说。但悬疑的部分埋的太浅,故事内容人物极度不饱和,以至于使这本书的反转变得稍显逊色。不过也有不少有意思的点子,现实与神话故事结合的地方,以及打在天花板上的那一枪,都是不错的构思。但我不苟同于作者的观点——“儿童时期所留下的创伤,会在成年之后带来无休止的影响”。对一些人来说(比如说我),童年时的创伤更能让你理解他人的苦楚,原谅他人也是放过自己。因为你经历过那样的境遇,所以你会想办法避免同样的情况发生在他人身上。因为这个,我变成了一个同理心特别夸张的人(也就是圣母婊),我常常会与小动物或者植物共情,认为人类的存在是错误的(也许本来就是)。这点谈不上好,也说不上坏,虽然我常常因为“拥有了怜悯众生的能力,却没有解救众生的能力”而感到痛苦,但我也会努力践行“达,则兼济天下”的属于我的道。
摘要
未得到 ...
《鳄鱼的黄眼睛》
读后感 作为一本备受好评的书而言,我觉得《鳄鱼的黄眼睛》所讲述的故事未免有一点枯燥或无趣了,在故事的中部你就能很容易的猜到故事的走向和结局,这无疑是它不太好的点。但作者巧妙的话语和看似随手的描述,却把故事中的主角们或者说是女人们描述的立体形象。有别于人们印象中浪漫的法国,本书更能让你体验到一个真实且普通的法国生活。虽说本书讲的是女性的独立,可能因为我是男性,我更能理解的是个人的独立,而非被性别所界线。这话在热衷于鼓吹男女对立的今天可能挺危险的,但不只是女性有枷锁,男生身上也拥有着与生俱来的枷锁。但孰重孰轻,我不能给出答案,因为我不能换位的去思考,但我觉得人生来就是苦难的。本书的作者就很像过去的我所主观的,我是一个彻头彻尾的理想主义者,我希望所有的人都能忠于自己的理想,去成为自己,而不是别人。当时年少未经事,虽说在送外卖赚钱养活自己,但充其量也是一种体验生活。因为自身的家境还算不错,所以我身上的枷锁是比别人要少一些的。当我看到一起送外卖的好朋友,被生活束缚的寸步难行时,我迫切甚至过于热烈的希望他能去做自己想做的事情。我没有房贷,没有远在老家的年迈的父母,也没有需要依赖我的女友,可他有, ...
CSharp算法
LeetCode7.整数反转123456789101112131415161718192021222324252627/// <summary>/// 7.整数反转/// 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。/// 如果反转后整数超过 32 位的有符号整数的范围[?231, 231 ? 1] ,就返回 0。/// </summary>/// <returns></returns>public static int Reverse(int x){ int res = 0; while (x != 0) { int t = x % 10; x /= 10; if (res > int.MaxValue / 10 || (res == int.MaxValue / 10 && t > 7)) { return 0; } ...
Unity面试题汇总
(BCWL)U3D程序员笔试题
1.请回答下述基础相关问题a) 什么是泛型,泛型和传统类型的Boxing/Unboxing有什么区别,写一个泛型类C使其继承于Cbase;什么是泛型:泛型允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。泛型和传统类型的Boxing/Unboxing有什么区别:装箱:值类型转引用类型。开辟一块内存空间进行存放数据。拆箱:引用类型转值类型。泛型对装箱拆箱的影响在集合的应用上有巨大的体现,诸如用 ArrayList 来储存 int 数据和用 List 来储存 int 数据。未使用泛型的 ArrayList 在每次存新数据时都会有从 int 到 object 的装箱操作,每次读取时都会有拆箱操作,而使用泛型的 List 不需要这些操作,也就避免了这方面的性能消耗。写一个泛型类C使其继承于Cbase:12345678910111213141516171819202122 public class CBase { } p ...
Unity性能优化
LOD层级细节技术LOD通过不同的距离 显示不同精细程度的模型
OcclusionCulling 遮挡剔除只显示视野内的物体
光照贴图LightMapping手动烘焙 将光照的Mode设置为Baked
合并Mesh
资源优化标准资源优化标准 Mesh 动态模型:面片数<3000 材质数<3 骨骼数<50 静态模型 顶点数<500 Audio 长时间音乐(背景音乐)压缩格式 mp3 短时间音乐(音效)非压缩格式 wav http://blog.csdn.net/u012565990/article/details/51794486 Texture 贴图长宽<1024 Shader 尽量减少复杂数学运算 减少discard操作 模型优化 贴图优化 如何减少冗余资源和重复资源 A、Resources目录下的资源不管是否被引用,都会打包进安装包,不使用的资源不要放 ...
Unity零碎知识点
1.Unity协程的原理协程不是多线程,协程还是在主线程里面(注:在Unity中非主线程是不可以访问Unity资源的)
线程、进程和协程的区别进程有自己独立的堆和栈,即不共享堆也不共享栈,进程由操作系统调度
线程拥有自己独立的栈和共享的堆,共享堆不共享栈,线程亦由操作系统调度(标准线程是这样的)
协程和线程一样共享堆不共享栈,协程由程序员在协程的代码里面显示调度
一个应用程序一般对应一个进程,一个进程一般有一个主线程,还有若干个辅助线程,线程之间是平行的,在线程里面可以开启协程,让程序在特定的时间内运行。
协程和线程的区别是:协程避免了无意义的调度,由此可以提高性能,但也因此,程序员必须自己承担调度的责任,同时,协程也失了标准线程使用多CPU的能力。
Unity中协程执行的原理Unity生命周期函数:
在Unity运行时,调用协程就是开启了一个IEnumerator(迭代器),协程开始执行,在执行到yield return之前和其他的正常的程序没有差别,但是当遇到yield return之后会立刻返回,并将该函数暂时挂起。在下一帧遇到FixedUpdate或者Update之后判断yie ...
CSharp零碎知识点
反射和特性-Type类元数据与反射
Type类
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283namespace ConsoleApp7{ class MyClass { public int intIndex1; public float floatIndex1; private int intIndex2; public int prop1 { get { return 1; } } private int prop2 { get { return 2; } ...
CSharp进阶
List 底层源码剖析List 继承于IList,IReadOnlyList,IList是提供了主要的接口,IReadOnlyList提供了迭代接口。
看构造部分,我们明确了,List内部是用数组实现的,而不是链表,并且当没有给予指定容量时,初始的容量为0。
Add上述List源代码中的Add函数,每次增加一个元素的数据,Add接口都会首先检查的是容量还够不,如果不够则用EnsureCapacity 来增加容量。每次容量不够的时候,整个数组的容量都会扩充一倍,_defaultCapacity 是容量的默认值为4。因此整个扩充的路线为4,8,16,32,64,128,256,512,1024…依次类推。
List使用数组形式作为底层数据结构,好处是使用索引方式提取元素很快,但在扩容的时候就会很糟糕,每次new数组都会造成内存垃圾,这给垃圾回收GC带来了很多负担。
RemoveRemove接口中包含了 IndexOf 和 RemoveAt,其中用 IndexOf 函数是位了找到元素的索引位置,用 RemoveAt 可以删除指定位置的元素。
从源码中我们可以看到,元素删除的原理其实就是用 A ...