- 博客(32)
- 资源 (36)
- 收藏
- 关注
原创 【算法】在二元树中找出和为某一值的所有路径
参考文章:http://xingyunbaijunwei.blog.163.com/blog/static/7653806720122284428687/输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22 和如下二元树 10 / \
2012-09-30 12:40:15 1153
原创 8皇后问题续
接着上篇文章,探讨下八皇后问题:下面是修改后的源码,参考了网友的答案:#include#define Bool int#define True 1#define False 0static count=0;void print(int gEightQueen[])//根据gEightQueen[]中的值,打印出皇后图形{ int outer; int inner;
2012-09-29 21:58:32 694
原创 【算法】8皇后问题
参考:http://www.cnblogs.com/jillzhang/archive/2007/10/21/922830.html现在有个疑惑,用这种方法如何打印出所有的可能情况? #include#define Bool int#define True 1#define False 0Bool IsSafe(int col,int row,int
2012-09-29 19:28:34 757
原创 strcmp的递归实现
#includeint Strcmp(char *p1, char *p2){ if(*p1!='\0' && *p2!='\0') { if(*p1 > *p2) return 1; else if(*p1 < *p2) return -1; else { p1++; p2++; return Strcm
2012-09-29 00:09:08 793
原创 【算法】设计包含 min函数的栈,时间复杂度都是 O(1)
设计包含 min函数的栈。定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。要求函数 min,push 以及 pop 的时间复杂度都是 O(1)以下程序采用顺序链表实现,实现时参考了相关博客,有疏漏之处,欢迎指正。思路:以空间换时间的方法#include#define MAXSIZE 256typedef struct minStackElemen
2012-09-27 21:02:32 1964
原创 求子数组的最大和
/*题目:输入一个整形数组,数组里有正数也有负数,数组中一个或连续的多个正数,求所有子数组的和的最大值,要求时间复杂度为O(n)很容易理解,当我们加上一个正数时,和会增加;当我们加上一个负数时,和会减少。如果当前得到的和是个负数,那么这个和在接下来的累加中应该抛弃并重新清零,不然的话这个负数将会减少接下来的和。基于这样的思路,我们可以写出如下代码。代码不仅求出了最大和,而且记录下了起始点和末尾的坐
2012-09-25 22:27:10 773
原创 微软面试题,将二叉排序树转换成双向链表
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 比如将二元查找树 10 / \ 6
2012-09-25 11:32:21 1519
原创 【数据结构】根据主定理,计算时间复杂度
前两天校园招聘的笔试,发现趋势科技和微软都考了根据递推式计算时间复杂度的题目,例如:已知某程序的时间复杂度的递推公式为:T(n)=25T(n/5)+n^2,求T(n)?先转网上的主定理,对照主定理,题中a=25,b=5,f(n)=n^2,符合第(2)种情况,因此时间复杂度为O(n^2*Logn)
2012-09-24 10:07:13 4592 1
原创 从一道题目看二维数组的地址
#includeusing namespace std;int main(){ char str[][4]={{1,2,3,4},{5,6,7,8}}; char *pc1 = (char *)(&str+1); char *pc2 = (char *)(&str[0]+1); char *pc3 = (char *)(str+1); char c1 = *
2012-09-21 17:33:49 743
原创 C++中的覆盖和隐藏
C++中的覆盖和隐藏,是个令人头疼的问题,下面写几点自己的认识。首先,参考c++高质量编程指南,给出覆盖的特征:覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。再给出隐藏的特征:“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
2012-09-21 14:15:11 1166
转载 【设计模式】设计模式的分类
经典的《设计模式》一书归纳出23种设计模式,本文按《易学设计模式》一书归纳分类如下:1.创建型模式前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:简单工厂模式(
2012-09-18 16:50:32 636
转载 各种排序算法的特点,时间复杂度,稳定性等
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*
2012-09-17 21:56:39 2181
原创 【校园招聘】一道笔试题看c++中virtual覆盖
#includeusing namespace std;class A{ public: void virtual f() { cout<<"A"<<endl; } };class B:public A{ public: void /*virtual*/ f() //virtual可以省略,也可以不省略,效果相同。 {
2012-09-17 20:12:42 1306
原创 斐波那契查找
与二分查找相比,斐波那契查找算法的明显优点在于它只涉及加法和减法运算,而不用除法。因为除法比加减法要占去更多的机时,因此,斐波那契查找的平均性能要比折半查找好。 参考文章:http://blog.csdn.net/zpluw/article/details/7757331下面给出源代码实现:/*斐波那契查找法,前提是线性表必须有序,时间复杂度是O(logn)*/#includ
2012-09-16 10:56:41 1241
原创 【数据结构】折半查找(二分查找)
折半搜索,也称二分查找算法、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。下面的代码给出了两种方法实现了该算法。
2012-09-15 21:03:13 2346 1
原创 【数据结构】快速排序
参考维基百科:快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。步骤为:从数列中挑出一个元素,称为 "基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partiti
2012-09-15 19:35:58 703
原创 【数据结构】归并排序
归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。(维基百科)参考文章:http://blog.csdn.net/morewindows/article/details/6678165下面是具体代码:#include #define true 1#d
2012-09-15 17:19:49 725
原创 【数据结构】堆排序
参考一篇文章:http://www.cnblogs.com/dolphin0520/archive/2011/10/06/2199741.html另外,在下面的链接下还有动画演示:http://sjjp.tjuci.edu.cn/sjjg/DataStructure/DS/web/flashhtml/duipaixu.htm 下面是源代码:/*堆排序(大顶堆) 2011.9
2012-09-15 11:32:34 1451
原创 【数据结构】希尔排序
希尔排序的原理参见,维基百科,http://zh.wikipedia.org/wiki/希尔排序,这里给出源代码。#includevoid ShellSort(int a[], int n){ int i,j,k,temp,gap; int gaps[]={1,5,13,43,113,297,815,1989,4711,11969,27901,84801, 21333
2012-09-13 12:00:37 1747
原创 【数据结构】直接插入排序
#include //#include void InsertSort(int a[], int n){ int i,j,t; for( i=1 ;i<n; i++) { t = a[i]; j = i-1; while( j>=0 && t<a[j]) { a[j+1] = a[j]; j--; } a[j+1]
2012-09-12 19:15:06 899
原创 【数据结构】选择排序
#include //#include void swap(int *a,int* b){ int tmp; tmp = *a; *a = *b; *b = tmp;}//void BubbleSort(int *p, int n)//{// int i,j;// for(i=0; i<n ;i++)// {// for( j=n-
2012-09-12 15:01:20 683
原创 【数据结构】冒泡排序
#include //#include void swap(int *a,int* b){ int tmp; tmp = *a; *a = *b; *b = tmp;}void BubbleSort(int *p, int n){ int i,j; for(i=0; i<n ;i++) { for( j=n-1; j >= i; j
2012-09-12 11:16:12 1040
原创 最小生成树之普里姆算法
算法的动画演示执行过程,参见网页http://www.java3z.com/cwbwebhome/article/article8/83551.html?id=4627
2012-09-11 16:17:08 1086
原创 霍夫曼树与霍夫曼编码
HUFFMAN树的定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度(WPL)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。wpl的计算:如图:二叉树a的wpl = 5*1+15*2+40*3+30*4+10*4=315二叉树b的wpl = 5*3+15*3+40*2+30*2+10*2=220哈弗曼树: wp
2012-09-08 10:45:33 1969
原创 字符串匹配KMP算法初探
先来看基本的串的匹配算法。给定一父串和一子串,判断子串是否匹配父串,匹配则返回父串开始匹配处的坐标,不匹配则返回-1.可配合下面的过程图看代码:#include #include int Index(char s[], char t[], int pos)//s存放父串,t放子串。{ int i,j,slen,tlen;//i,j代表游标,分别指向父
2012-09-05 15:38:07 651
原创 备战校园招聘索引
【算法篇】:http://blog.csdn.net/v_july_v/article/具体为:九月腾讯,创新工场,淘宝等公司最新面试30题:171-200十月百度,阿里巴巴,迅雷,搜狗最新面试70题:201-270十月下旬腾讯,网易游戏,百度,迅雷 270-330微软、谷歌等面试题http://blog.csdn.net/xiaoxieqingfa/article/d
2012-09-05 14:27:14 793 1
原创 【Structs2】Struts2入门之hello world程序的跑通
1.去官网下载Struts2.3.4.1的包,总大小约62M,用迅雷下载速度很快。2.解压后如下图所示:3.在eclipse中新建动态网页project。点击上图中apps,解压struts2-blank,依次在struts-2.3.4.1\apps\struts2-blank\WEB-INF\classes下找到struts.xml拷贝至eclipse工程的src目录下。4.将
2012-09-04 21:08:43 2201 1
原创 【数据结构】循环队列的front,rear指针以及队列满的条件、计算队列长度
循环队列满时,数组中还有一个空的单元。如图4-12-8所示,我们认为,队列已经满了,也就是说,我们不允许出现4-12-7的右图情况出现。 队列满的条件是:(rear+1)%QueueSize == front通用的计算队列长度的公式为:(rear - front+ QueueSize)%QueueSize
2012-09-04 09:20:07 30263
原创 将中缀表达式转换为后缀表达式的简便方法
参考文献:颜晶晶 张涛《将中缀表达式转换成后缀表达式的三种方法》http://blog.csdn.net/glldc/article/details/1818787第一种:利用栈来实现,该方法为常规方法,论文中也有介绍,但本人认为,该方法不利于记忆,且费时,不足以应付考试的要求。再此不再赘述。第二种:后序遍历二叉树法:例:将中缀表达式a+(b-c)*d转换成后缀表达式第一步:画
2012-09-03 21:33:08 3368
原创 【C语言深度剖析】测试系统存储是大端模式还是小端模式的方法
请写一个C 函数,若处理器是Big_endian 的,则返回0;若是Little_endian 的,则返回1。先分析一下,按照上面关于大小端模式的定义,假设int 类型变量i 被初始化为1。以大端模式存储,其内存布局如下图: 以小端模式存储,其内存布局如下图: 变量i 占4 个字节,但只有一个字节的值为1,另外三个字节的值都为0。如果取出低地址上的值为0,毫无疑问,这是大端
2012-09-02 20:50:12 1823
原创 【C语言深度剖析】读书笔记之 signed ,unsigned
1.4,signed、unsigned 关键字我们知道计算机底层只认识0、1.任何数据到了底层都会变计算转换成0、1.那负数怎么存储呢?肯定这个“-”号是无法存入内存的,怎么办?很好办,做个标记。把基本数据类型的最高位腾出来,用来存符号,同时约定如下:最高位如果是1,表明这个数是负数,其值为除最高位以外的剩余位的值添上这个“-”号;如果最高位是0,表明这个数是正数,其值为除最高位以外的
2012-09-02 18:31:21 1186
C++ zxing 识别二维码静态库工程
2014-05-14
豆瓣2013校园招聘研发笔试题
2012-11-21
高通推出近距离P2P通讯技术 AllJoyn
2012-06-02
[P2P网络技术原理与C.开发案例].(张文,赵子铭).影印版
2012-03-16
岳维功 ortp-realease.pdf
2012-03-07
PHP coder PHP编辑器
2011-09-18
max+plus ii v10.2_2.rar
2011-09-18
华为程控交换技术~~~~~~~~~~~~~~~~~~~~~
2011-07-10
A framework for intelligient marketing in mobile P2P environments
2011-03-10
数学公式编辑器 编辑各种数学公式等等~~~~~~~~~~~~
2009-12-23
06年南京邮电大学通信原理考研真题
2009-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人