摘要:
第一次翻译,另水平有限,难免出错,敬请原谅,如果实在难以理解,请看原文对照 原文链接:http://www.codeproject.com/Articles/121096/Web-Server-and-ASP-NET-Application-Life-Cycle-in-D 简介 在本文,我们将试着解释清楚当用户向ASP.NET应用程序发送一个请求时到底发生了什么。有许多文章已经解释过这个问题... 阅读全文
摘要:
一、前言 本文主要讲述MongoDB使用的数据类型BSON,使用的传输协议Mongo Wire Protocol,MongoDB数据文件的内部结构。 二、BSON BSON [bee · sahn], short for Binary JSON, is a binary-encoded serialization of JSON-like documents. J... 阅读全文
摘要:
一、定义 委托类似于C++的函数指针,但是委托时类型安全的。一个不好听的比喻,生前写了一个遗嘱,死后遗嘱才会公开。委托的意义就是在某个特定的时间做某事,比如点击一个按钮会发生某事,但是你不想修改按钮的代码,可以添加一个方法到委托上,当点击按钮时,会自动执行委托链上的方法。委托增加了复杂性但是也增加了灵活性,方便程序的设计。 二、委托与事件 让委托工作起来需要的步骤: 1. 声明委托类型。 ... 阅读全文
摘要:
前言 导师让我看一些NoSQL资料,于是目标锁定了MongoDB,至于为什么,很简单,发现了一些不错的资料。看了一些资料,有一些想法或者读后感吧,记下来,以备回忆。 简介 MongoDB是面向集合、模式自由的文档型数据库。 面向集合(collection),文档(document)而不是面向表(table),行(row)。文档型数据库是指数据库里面的数据库格式是BSON,与Json有些类似... 阅读全文
摘要:
一、 来由一个网站已经做好了,但是发现访问速度太慢了,虽然以前做项目也有这个感觉…网站已成,修改后台代码之类的感觉太麻烦了,没有前端优化来的爽快。二、网页性能测试工具Page Speed:下载地址https://developers.google.com/speed/pagespeed/download?hl=zh-CN这个插件有firefox和chrome版排在最前面的代表最影响该网页性能的原因,每一项都可以展开,会有相应的建议来优化。三、优化前端优化主要是减少http请求数和请求的文件大小1、优化图片、合并图片许多图片可以无损压缩(去除不影响图片质量的附加信息),可以点击optimized 阅读全文
摘要:
前言本文内容主要是 寻找最大最小值,寻找第i小值,以及随机函数的改写。在一个大小为n的集合里面,第i个顺序统计量是指该集合中第i小的元素。寻找最大最小值普遍算法是遍历数组,设置max和min存储最大最小值。每个元素都与max和min比较,然后分别改变max和min的值(如果需要改变的话)。如此算来该算法需要进行比较的次数为2n次。那么如果想缩短比较的次数该肿么办呢?假设数组A的长度为奇数,max = min = A[0],然后A[1]…..A[n-1]一共n-1个(偶数个)元素。每次取两个元素比较,将比较后的较大值与max比较,将较小值与min比较,然后相应的修改max和min值,一共比较三次 阅读全文
摘要:
前言比如有些平台每次读都是从偶地址开始,如果一个int型(假设为32位系统)如果存放在偶地址开始的地方,那么一个读周期就可以读出,而如果存放在奇地址开始的地方,就可能会需要2个读周期,并对两次读出的结果的高低字节进行拼凑才能得到该int数据。数据对齐(Data Alignment) 这个要求可以提高存储器系统的性能,减少寻址次数,代价是浪费了一些空间。换句话说是用相对廉价的空间换得时间。数据对齐在我计算机上的各基本类型的所占字节数如下:有结构体A如下: 1: struct A 2: { 3: int i; 4: double d; 5: char c; 6: short s; 7: };数据对 阅读全文
摘要:
前言 插入,快速,合并,堆排序等基于比较的排序算法的最坏情况下界为Ω(nlogn),最坏情况下都要进行Ω(nlogn)次比较。假设有一n个元素组成的数组(假设每个元素都不相等),那么一共有n!排列组合,而且这n!排列组合结果都应该在决策树的叶子节点上(如图1),在图1中n = 3,所以有3! = 6种组合全都在决策树的叶子节点,对于高度为h的二叉树,叶子节点的个数最多为2h (当为满二叉树时为2h... 阅读全文
摘要:
前言 快速排序的平均情况下是O(nlogn),但是一般都比其他运行时间为O(nlogn)的算法都要快,因为它隐藏的常数因子比较小,但是在最坏情况之下,快速排序的运行时间是O(n2)。 快速排序过程 快速排序采用的思想是分治思想,就像合并排序算法的思想一样,合并排序算法是从数组的中间开始分治,直到分为N个分组,最后分别合并N个分组的解。如下图,有原始数组A = {1, 3, 4, 5, 7, 2, ... 阅读全文
摘要:
前言记得在学习数据结构的时候一味的想用代码实现算法,重视的是写出来的代码有一个正确的输入,然后有一个正确的输出,那么就很满足了。从网上看了许多的代码,看了之后貌似懂了,自己写完之后也正确了,但是不久之后就忘了,因为大脑在回忆的时候,只依稀记得代码中的部分,那么的模糊,根本不能再次写出正确的代码,也许在第一次写的时候是因为参考了别人的代码,看过之后大脑可以进行短暂的高清晰记忆,于是欺骗了我,以为自己写出来的,满足了成就感。可是代码是计算机识别的,而我们更喜欢文字,图像。所以我们在学习算法的时候要注重算法的原理以及算法的分析,用文字,图像表达出来,然后当需要用的时候再将文字转换为代码。记忆分为三个 阅读全文