摘要: 题目:一个横纵向均递增的矩阵,指定元素是否在矩阵中?看网上讨论不少,就是没个正经答案——没有测试过的代码没有完整的理论。现在给出我的分析:假设矩阵是m*n的,给定元素为e。思路一:对矩阵每行(或每列)进行二分搜索,复杂度为 O(nlog2m)或O(mlog2n)。思路二:将二分搜索推广到矩阵。参照下面矩阵,找到矩阵的中间数a32,比较a32和e会有如下情况:a32 == e,找到a32 > e,排除矩阵(a32, a64),因为这个区域数据一定比e大a32 M[x2][y2])10 return false;11 12 int xm =... 阅读全文
posted @ 2013-09-20 16:08 linaelf 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 二分搜索思想给定一个有序(不降序)数组a, 求任意一个i使得a[i]等于v,不存在返回-1。二分搜索的思路是:选一个数组中间值m,将有序数组一分为二。如果a[m]==v,搜索结束;如果a[m]>v,搜索[left, m),反之搜索(m, right]。如图所示。那么如果数组中没有v时,何时终止搜索呢?一个显而易见的条件是数组不能再进行划分搜索时,即left > right 。二分搜索可以有以下变种:1. 给定一个有序(不降序)数组a, 求最大的i使得a[i]等于v,不存在返回-12. 给定一个有序(不降序)数组a, 求最小的i使得a[i]等于v,不存在返回-13.给定一个有序(不降 阅读全文
posted @ 2013-07-11 14:20 linaelf 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 1、操作符重载a、构造器转换——将一个类型值显示或隐式赋给另一个类型将Nullable类型转换为ValueTypepublic static explicit operator T(T? value){ return value.Value;} 将ValueType类型转换为Nullablepublic static implicit operator T?(T value){ return new T?(value);}b、操作符重载函数将被编译器翻译为特定名称函数,必须为static、public操作符重载示例public static int operator +(Tru... 阅读全文
posted @ 2010-04-01 15:40 linaelf 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/tuyile006/archive/2007/03/20/681154.html1:a=10,b=15,在不用第三方变量的前提下,把a,b的值互换2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组3:请简述面向对象的多态的特性及意义!4:session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法5:对数据的并发采用什么办法进行处理较好。6:已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_ 阅读全文
posted @ 2010-03-22 21:37 linaelf 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 上一章讲的是Type,这一章讲了实例在内存中的情况。主要内容有两个——分清楚值类型和引用类型;搞清楚GC是怎么回事。这其中当然也介绍了一些有用的函数了。1、值类型和引用类型值类型是继承于System.ValueType的类型,它与引用类型一样可以有字段、方法,但是不能被继承,运行时是存储在栈上的。值类型在CLR中只有三种:基本数据类型,如Int32,Boolean;struct;enum。引用类型则是继承于System.Object的,其运行时的内存结构中有对象头,记录虚函数等信息,并是存储在托管堆上的。当编译器遇到c#中的int、bool等原始类型时,会将它们翻译成CLR的Int32、Boo 阅读全文
posted @ 2010-03-16 21:28 linaelf 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 用类型编程这一章的主要内容是介绍用类型可以做什么,以及一些函数的使用范例。我认为有用的部分主要有三个:类型的内存分布结构、类型函数的使用、元数据扩展(利用属性)1、引用、对象、类型在内存中如何分布的? 这部分解决了我这方面的很多疑惑,直接上图:使用对象时,我们通过“引用”来使用对象,所谓“引用”不过也是托管指针罢了(托管指针是指向托管内存的一个指针),途中的Reference即是。引用指向的对象在内存中怎么存储的呢?首先有一个sync#,这个是用来记录资源信息的,锁之类,这个我还没有涉及,不多说。重要的是后面有一个htype的类型指针,这个指针指向一块不透明(ms没有文档公布)的数据结构,这个 阅读全文
posted @ 2010-03-15 19:43 linaelf 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 类型基础CLR的Type是可重用抽象体,就是把module再细分的结果。Type的描述存放在CLR的module的元数据中,module里同时存着使type工作的CIL(common intermediate language)或本机代码(machine code).Type的强命名包括三部分:assembly name, namespace prefix, type name.以下记录几个容易混淆的东西。1、access control public是所有类可见 internal是指在type所属程序集可见 protected是指type自身和子类可见 private是指自身可见其中,int 阅读全文
posted @ 2010-03-14 19:48 linaelf 阅读(391) 评论(0) 推荐(0) 编辑