编程小技巧
摘要:1.判断一个自然数是否是某个数的平方?(其实就是判断这个数一定是奇数相加的)由于(n+1)^2=n^2 + 2n + 1,= ...= 1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1)注意到这些项构成了等差数列(每项之间相差2)。所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。例如:3^2 = 9 = 1 + 2*1+1 + 2*2+1 = 1 +
阅读全文
posted @
2013-10-24 16:45
猿人谷
阅读(472)
推荐(0) 编辑
总结---6
摘要:1.OSI参考模型有多少层?分别是哪几层?(不建议死记硬背,可以看看我在系列文章第一篇里的描述,效果比较好,不会因为紧张而答不出来) 七层模型,自下而上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。首先要学习OSI模型。如上图,OSI参考模型中各个分层的作用分别是——应用层:为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件以及远程登录(虚拟终端)等协议。表示层:将应用处理的信息转换为适合网络传输的格式,或讲来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。会话层:负责建立和断开通信连接(数据流通的逻辑通路),以及数...
阅读全文
posted @
2013-10-23 09:56
猿人谷
阅读(405)
推荐(1) 编辑
总结---5
摘要:1.语义搜索所谓语义搜索,是指搜索引擎的工作不再拘泥于用户所输入的关键字,而是准确捕捉到用户所输入语句后面的真正意图,并以此来进行搜索,微软、谷歌和Facebook目前正在做着这样的事。语义搜索技术可以让计算机理解人们信息的概念,而非关键字。2.内存碎片内存碎片的产生:内存分配有静态分配和动态分配两种静态分配在程序编译链接时分配的大小和使用寿命就已经确定,而应用上要求操作系统可以提供给进程运行时申请和释放任意大小内存的功能,这就是内存的动态分配。 因此动态分配将不可避免会产生内存碎片的问题,那么什么是内存碎片?内存碎片即“碎片的内存”描述一个系统中所有不可用的空闲内存,这些碎片之所以不能被使用
阅读全文
posted @
2013-10-22 10:39
猿人谷
阅读(312)
推荐(0) 编辑
总结---4
摘要:全局变量与全局静态变量的区别:(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。静态全局变量的作用:(a)不必担心其它源文件使用相同变量名,彼此相互独立。(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。有语句char str[] = "abcde";请问表达式sizeof(str)的值是() 后面还有\0A、1 B、4 C、5 D、6有函数int func(int...
阅读全文
posted @
2013-10-21 21:45
猿人谷
阅读(647)
推荐(0) 编辑
如何建立自己的私有云存储
摘要:来源:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/27/3101883.html现 在云计算已经算不上一个新鲜词了,各大IT公司的产品都会套上一个“云”字来忽悠用户。相信大家都用过网盘,现在更流行的词应该叫“云存储”,像用的比较 多国外的有 Dropbox、SkyDrive,国内也有百度云网盘、sina微盘、腾讯微云网盘等等,我们可以用这些网盘在不同的设备上来存储/获取数据,如PC、 智能手机、平板电脑等等,同时我们希望不同设备间的数据是同步的。 我们将要搭建自己的云系统平台,更精确的说是一个云存储系统,正如上面的产品所提供的功能。
阅读全文
posted @
2013-10-13 21:04
猿人谷
阅读(1334)
推荐(0) 编辑
总结---3
摘要:Email relay 和Email access分别用了什么协议?答:SMTP,POP31:多态是如何实现绑定的?多态的绑定可以分为运行是多态和编译时多态●编译时的多态性编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。●运行时的多态性运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。2:析构函数是虚函数的优点是什么?这样做是为了当用一个基类的指针删除一个派生类的对象时,派生类的析
阅读全文
posted @
2013-10-10 16:15
猿人谷
阅读(492)
推荐(0) 编辑
常见排序算法分析
摘要:一.常见排序算法的实现1.冒泡排序冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。按照定义很容易写出代码:void bubbleSort(int arr[],int n){ int i,j,t; for(i=0;i void bubbleSort(int arr[],int n){ int i,j,t; for(i=0...
阅读全文
posted @
2013-10-08 13:46
猿人谷
阅读(975)
推荐(0) 编辑
总结---2
摘要:1.各种排序算法的时间复杂度和空间复杂度分析选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。排序法平均时间最差情形稳定度额外空间备注冒泡O(n2) O(n2)稳定O(1)n小时较好交换 O(n2) O(n2)不稳定O(1)n小时较好选择O(n2)O(n2)不稳定O(1)n小时较好插入O(n2)O(n2)稳定O(1)大部分已排序时较好基数O(logRB)O(logRB)稳定O(n)B是真数(0-9),R是基数(个十百)ShellO(nlogn)O(ns) 11,则其双亲是结点[i/2]。如果2i>n,则结点i无左孩子(结点i为
阅读全文
posted @
2013-10-08 13:31
猿人谷
阅读(279)
推荐(0) 编辑
IOS开发博客学习
摘要:M了个J :http://www.cnblogs.com/mjios/tag/objective-c/http://www.cnblogs.com/tianjian/p/3358602.html Cocos2d-x VS环境配置泰然论坛:http://www.ityran.com/archives/category/cocos2d-iphone1.http://www.cnblogs.com/zilongshanren/archive/2011/09/19/2181558.html 非常适用的入门教程2.http://www.cnblogs.com/BigPolarBear/tag/iOS/3
阅读全文
posted @
2013-10-04 10:03
猿人谷
阅读(1751)
推荐(1) 编辑
总结---1
摘要:1.const与 #define有什么不同?答:C++中可以使用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点①const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只是进行字符替换,没有做类型安全检查,并且在字符替换中可能会产生意料不到的错误(边际效应)②有些集成化的调试工具可以对const常量进行调试,但是不能对宏进行调试即在C++中 const可以完全替换宏常量扩展:typedef和#define的区别:http://www.cnblogs.com/heyonggang/p/3199216.html2.头文件中的ifnd
阅读全文
posted @
2013-09-08 15:17
猿人谷
阅读(569)
推荐(0) 编辑
经典博客---《数据结构与算法》
摘要:1.http://www.cnblogs.com/JCSU/category/377626.html2.非常不错的博客。http://www.nowamagic.net/librarys/veda/detail/2241
阅读全文
posted @
2013-08-30 20:31
猿人谷
阅读(249)
推荐(0) 编辑
C++重要知识点小结---3
摘要:C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.htmlC++重要知识点小结---2:http://www.cnblogs.com/heyonggang/p/3253036.html1.什么是智能指针?智能指针是一个行为类似指针但也提供其他功能的类。智能指针类实现普通指针行为的类的区别在于:智能指针通常接收指向动态分配对象的指针并负责删除该对象。用户分配对象,但由智能指针类删除它,因此智能指针类需要实现复制控制成员来管理指向共享对象的指针。只有在撤销了指向共享对象的最后一个智能指针后,才能删除该共享对象。使用计数是实现智能指
阅读全文
posted @
2013-08-14 17:03
猿人谷
阅读(1002)
推荐(0) 编辑
C++重要知识点小结---2
摘要:C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继承。这种类成为抽象类。一个抽象类至少具有一个纯虚函数。所谓纯虚函数是指被标明为不具体实现的虚成员函数。如:virtual void WithDrawal(float amount) = 0; //纯虚函数在WithDrawal()的声明之后的“=0”表明程序员将不定义该函数。该声明是为派生类而保留的位置。一个抽象类不能有实例对象,即不能由该类抽象来制造一个对象。纯虚函数是在基类中为子类保留的一个位.
阅读全文
posted @
2013-08-12 15:39
猿人谷
阅读(5696)
推荐(0) 编辑
C++重要知识点小结---1
摘要:1.C++中类与结构的唯一区别是:类(class)定义中默认情况下的成员是private的,而结构(struct)定义中默认情况下的成员是public的。2. ::叫作用域区分符,指明一个函数属于哪个类或一个数据属于哪个类。::可以不跟类名,表示全局数据或全局函数(即非成员函数)。3.类名加载成员函数名之前而不是加在函数的返回类型前。错误:Tdate::void Set(int m , int d , int y) {}正确: void Tdate::Set(int m , int d , int y) {}4.一个类对象所占据的内存空间由它的数据成员所占据的空间总和所决定。类的成员函数不占据
阅读全文
posted @
2013-08-08 20:57
猿人谷
阅读(19826)
推荐(2) 编辑