- 博客(37)
- 收藏
- 关注
原创 二叉堆、二项堆、斐波那契堆
二项堆:http://blog.csdn.net/acceptedxukai/article/details/6951922斐波那契堆:http://www.roading.org/algorithm/introductiontoalgorithm/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E5%A0%86fibonacci-heaps.html
2013-05-28 11:54:57 705
转载 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦
http://blog.csdn.net/v_july_v/article/details/6543438
2013-05-26 21:44:37 381
原创 康托展开
{1,2,3,4,...,n}表示1,2,3,...,n的排列如 {1,2,3} 按从小到大排列一共6个。123 132 213 231 312 321 。代表的数字 1 2 3 4 5 6 也就是把10进制数与一个排列对应起来。他们间的对应关系可由康托展开来找到。如我想知道321是{1,2,3}中第几个大的数可以这样考虑 :第一位是3,当第一位的数小于3时,那排列数小于321 如
2013-05-22 23:15:22 370
转载 java 与 C++ 区别
1.指针 JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。 2.多重继承 c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而
2013-05-22 13:05:12 348
转载 java 线程安全
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:?123456789101112class 类名extends Thread{方法1;方法2;…public void run(){
2013-05-22 10:25:45 286
转载 事物
一、什么是Java 事务通常的观念认为,事务仅与数据库 相关。事 务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示 当事务执行失败时,所有被该事务影响的数据都应该恢复到
2013-05-22 10:04:34 386
原创 面试 题 总结
1.C++ 与java的区别2.java 内存回收机制3.http协议4.七层网络结构5.数据库 事物 webservice,推送,事物6.hadoop7.学过课程8.有深度项目
2013-05-21 12:13:14 327
原创 Android 只开启一个Activity实例
核心提示:在一个Activity中,多次调用startActivity()来启动另一个Activity,Android 只开启一个Activity实例,要想只生成一个Activity实例,方法有两种,就不产生新的activity,而只是把这个activity实例加到栈顶来就可以了,方法一:设置起动模式一个Activity有四种启 在一个Activity中,多次调用startActivity
2013-05-15 22:16:06 617
转载 解决哈希(HASH)冲突的主要方法
虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是 哈希技术中的两个重要问题。1、开放定址法 用开放定址法解决冲突的做法是:当冲突发生时,使用某种
2013-05-15 20:20:12 420
原创 unnormal C++
int A[]={11,22,33,44}; printf("%d\n",0[A]); // 11 等价于 printf("%d\n",A[0]); printf("%d\n",A[0]); printf("%d\n",1[A]); // 22 printf("%d\n",2[A]); // 33 printf("%d\n",3[
2013-05-14 14:05:00 386
原创 编程之美 Top K
1.先介绍一下优先队列 #include#include#includeusing namespace std;struct node{ friend bool operator< (node n1, node n2) { return n1.priority < n2.priority; } int priority;
2013-05-14 10:42:07 623
原创 ios_base::sync_with_stdio
int main(){// ios_base::sync_with_stdio(true); //输出 aaaabbbb// ios_base::sync_with_stdio(false);//输出 bbbbaaaa cout << setprecision(15) << fixed; cout<<"aaaa\n"; printf("bbbb\n"); retur
2013-05-13 09:51:59 935
转载 C++ 继承
C++继承可以是单一继承或多重继承,每一个继承连接可以是public,protected,private也可以是virtual或non-virtual。然后是各个成员函数选项可以是virtual或non-virtual或pure virtual。本文仅仅作出一些关键点的验证。 public继承,例如下:class base{...}class derived:public base
2013-05-08 20:43:31 611
转载 C++ 虚函数表解析
陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是
2013-05-08 20:09:43 301
转载 C++拷贝构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
2013-05-07 17:17:20 376
转载 C++ 深拷贝/浅拷贝
浅拷贝就是对象的数据成员之间的简单赋值,如你设计了一个没有类而没有提供它的复制构造函数,当用该类的一个对象去给令一个对象赋值时所执行的过程就是浅拷贝,如:class A { public: A(int _data) : data(_data){} A(){}private: int data; };int main() { A a(5), b = a;
2013-05-07 16:49:14 361
原创 C++ 类成员变量初始化 static / const / auto
1. auto 类型的成员变量可以使用默认构造函数初始化2. const 类型成员变量:如果显示的写出了构造函数,则必须在构造函数中初始化,如果没有写构造函数,则可以正常编译3.static 根据C++ Primer中所叙述,static成员必须在类外进行初始化,而不能在构造函数内进行初始化 static 成员函数没有this形参,它可以直接访问所属类的static成员,但不能直接
2013-05-07 11:29:04 1438
转载 C++ const
1.const修饰符 指针 &引用const int a; int const a; //这两个写法是等同的,表示a是一个int常量。const char* p //p是指向const对象的指针,即对象是只读的,指针指向的对象不可修改。const char* p;char *p1=p; //不允许的当然,直接使用非const指针指向const对象也是不合法的。ch
2013-05-07 10:38:50 376
转载 C++ 友元 总结
问题的提出我们已知道类具备封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程式的运行效率。为了解决上述问题,提出一种使用友元的方案。
2013-05-06 21:06:38 477
原创 KMP
#include using namespace std;char t[100]="aaaaababcdeeeeababcdee";char p[100]="ababcde";int b[100];int n,m;void kmpGetNext(){ int i=0, j=-1; b[i]=j; m=strlen(p); while (i<m)
2013-05-06 17:39:24 405
转载 Objective-C 类别Categroy (实现多重继承的方法)
✓ 类别是一个类,它是添加了新功能的现有类。✓ 使用类别就是为了能够为现有类添加新的方法,不用继承该现有类,就可使用现有类的对象调用添加的方法了。✓ 类别可以使类的实现分散在多个文件中.✓ 类别中不能有变量,类别中没有放变量的位置.✓ 如果类中的方法和类别中的方法名称相同,这将造成冲突,类别的方法将完全取代类的方法。✓ 同一个类的不同类别声明了相同的方法,这将导致不稳定,哪个方
2013-05-06 09:42:26 437
转载 object-c category 和 protocol
这两个都是mac下的协议,用法有点像C++中的函数重载和虚函数。首先Category: 它可以给原有的类增加新的方法,而不用重新建一个类,然后在原有的类的基础上使用这个方法,但是不能给类增加新的数据成员。eg: 给 NSArray增加(DeepCopy)方法声明: @interface NSArray(DeepCopy) -(NSArray *)deepCopy;
2013-05-06 09:37:37 496
转载 Object-C 协议protocol
@interface 相当于是Object-C 的类的原型,与JAVA 中的接口意义是不同的,Object-C中的 @protocol 才是和JAVA 中的接口等价的东西。例如:Object-C 的继承也是单继承,只允许有一个父类,但是@protocol 是允许多继承的(按照Object-C 的说法叫做某类遵从了协议A、协议B,而不是继承),这些都与JAVA 的接口一致。java中的i
2013-05-06 09:10:12 527
原创 C++ 构造函数
1.类成员的显示初始化 对于没有定义构造函数并且其全体数据成员均为public的类,可以采用与初始化数组元素相同的方式初始化其成员struct Data{ int ival; char *ptr;};Data val1={0,0};Data val2={1024,"hello ..."}; pair的数据成员为public,但是如下代码无法编译?
2013-05-05 20:45:51 343
转载 深入C++的new
“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{
2013-05-04 20:14:17 477
转载 c++类的实例化,有没有new的区别
A a; //等同于 A a = A();A * a = new a(); 以上两种方式皆可实现类的实例化,有new的区别在于:1.前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。2.不加new在堆栈中分配内存3.大程序用new,小程序直接申请4.只是把对象分配在堆栈内存中5.new必须delete删
2013-05-04 19:16:09 673
原创 欧拉函数
在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。 φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1
2013-05-04 17:14:56 494
原创 catalan数
卡塔兰数是组合数学中一个常出现在各种计数问题中出现的数例。由比利时的数学家欧仁·查理·卡塔兰(1814-1894)命名。卡塔兰数的一般公式为 C(2n,n)/(n+1)。性质令h(0)=1,h(1)=1,catalan数满足递归式:h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),这是n阶递推关系;还可以化简为1
2013-05-04 17:02:01 442
转载 抛银币 概率题
有道概率题:一个有趣的抛硬币问题假设有一个硬币,抛出字(背面)和花(正面)的概率都是0.5,而且每次抛硬币与前次结果无关。现在做一个游戏,连续地抛这个硬币,直到连续出现两次字为止,问平均要抛多少次才能结束游戏?注意,一旦连续抛出两个“字”向上游戏就结束了,不用继续抛。先来考虑一下抛硬币的过程:首先先抛一枚硬币,如果是花,那么需要重头开始;如果是字,那么再抛一枚硬币,新抛
2013-05-04 16:46:48 785
原创 快慢指针
快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。快慢指针的应用判断单链表是否为循环链表让快慢指针从链表头开始遍历,快指针向前移动两个位置,慢指针向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,不是循环链表。如果 快指针追上慢指针,则表示出现了循环。fast=slow=head;whil
2013-05-04 16:22:16 394
原创 函数指针
函数指针的声明方法为:函数类型 (标志符指针变量名) (形参列表);注1:“函数类型”说明函数的返回类型,“(标志符指针变量名 )”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一
2013-05-04 15:42:32 332
转载 C++中struct和class的区别
一、 C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗? 能!!! 最本质的一个区别就是默认的访问控制,体现在两个方面: 1)默认
2013-05-04 15:35:30 419
转载 C++ const
原文地址:http://blog.csdn.net/Eric_Jo/article/details/4138548C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。 Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、
2013-05-02 15:20:07 387
原创 C\C++
1.定义MSDN上的解释为:The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types).This keyword returns a value of type size_t.其返回值类
2013-05-02 10:45:36 321
原创 C++ I/O
1.标准IO类C++标准IO类型在三个独立的头文件中定义:iosstream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,sstream定义的类型则用于读写存储在内存中的string对象。库自动定义了一些标准对象: (1) cout:ostream类的一个对象,可以将数据显示在标准输出设备上。 (2) cerr:os
2013-05-02 09:30:45 430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人