- 博客(21)
- 资源 (88)
- 收藏
- 关注
转载 判断二叉树是否是二叉搜索树
问题给定一棵二叉树,判定该二叉树是否是二叉搜索树(Binary Search Tree)? 解法1:暴力搜索首先说明一下二叉树和二叉搜索树的区别。二叉树指这样的树结构,它的每个结点的孩子数目最多为2个;二叉搜索树是一种二叉树,但是它有附加的一些约束条件,这些约束条件必须对每个结点都成立:结点node的左子树所有结点的值都小于node的值。结点node的右子树所有结点的值都大
2013-07-19 23:58:53 1633
转载 JAVA多线程程序设计23个要点
1.多线程中有主内存和工作内存之分, 在JVM中,有一个主内存,专门负责所有线程共享数据;而每个线程都有他自己私有的工作内存, 主内存和工作内存分贝在JVM的stack区和heap区。 2.线程的状态有'Ready', 'Running', 'Sleeping', 'Blocked', 和 'Waiting'几个状态,'Ready' 表示线程正在等待CPU分配允许运行的时间。
2013-07-17 23:12:09 855
原创 MySQL中取出一列中含有最大值的记录
在数据库使用过程中,我们有时候需要取出在一个表中对于某个列来说具有最大值或最小值的记录行,那么该如何操作呢?下面讲解几种方法。首先我们先定义一个表,如下所示:这是一张简单的表,下面我们通过这张表来得到含有最大price的记录行。你想到该怎么做了吗?(1)采用子查询我想这种方法是你们最先想到的吧,不错,也是我最先想到的方法。那么现在实现一下。呵呵,达到目的了,那么这种
2013-07-11 09:39:16 39688 6
转载 一个n位数平均有多少个单调区间?
考虑这么一个 14 位数 02565413989732 ,如图所示,它的数字先逐渐变大,然后开始变小,再变大,再变小,再变大,再变小。我们就说,它一共包含了 6 个单调区间。我们的问题就是:一个 n 位数平均有多少个单调区间?为了避免歧义,我们假设任意两位相邻的数字都不相同,因而像 77765589911 这样的数我们就不考虑了。另外,大家可能已经注意到了,我们允许这个 n 位数以数字 0 开头。
2013-07-10 19:56:40 1164
原创 程序员必知算法----BM字符串查找算法
BM字符串查找算法,由Boyer,Moore提出,因而得名。该算法和KMP算法思想一样,都是需要先进行预处理,然后在每次进行匹配失败时,根据预处理的结果,快速找到下一次继续匹配的位置。与KMP不同的是,BM算法在每次匹配时都从后往前开始匹配,这样可以确保在模式字符串的后面字符出现匹配失败时能够快速的进行下面的匹配。如果我们从前往后进行匹配检查,那么当出现前面字符匹配正确,而在最后一个字符出
2013-07-10 16:26:24 2550
转载 用最少的称重次数验证硬币的重量
这是一个非常有趣的问题,它出自 UyHiP May 2013 的谜题。 假设你有 n枚完全相同的硬币,它们的重量分别为1g, 2g, 3g, …, ng。有意思的是,这一次,你已经知道了各枚硬币的重量,而且你也已经把重量值标在了这些硬币上。但是,由于我不知道各枚硬币的重量,因此我希望你能向我证明,你所标的重量值是正确的(我知道这些硬币的重量是从1克到 n 克,我只是不知道
2013-07-09 22:58:11 4298
转载 程序员必知算法----KMP算法系列(2)
转载自:http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第
2013-07-09 22:06:18 791
原创 程序员必知算法----KMP算法系列(1)
KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们就说B是A的子串。解决这类问题,通常我们的方法是枚举从A串的什么位置起开始与B匹配,然后验证是否匹配。假如A串长度为n,B串长度为m,那么这种方法的复杂度是O (mn)的。虽然很多时候复杂度达不到mn
2013-07-09 22:03:01 1095
转载 FTP 协议和 HTTP 协议的12点比较(文件上传/下载)
许多站点,比如facebook或一些博客等都允许用户上传或下载文件,比如论坛或博客系统的图片。在这种情况下,通常有两种选择上传文件到服务器,那就是FTP协议和HTTP协议。以下列出了一些两者的不同点:1、HTTP协议是用来浏览网站的,而FTP是用来访问和传输文件的,FTP文件传输有点批量上传和维护网站的意思,而HTTP文件传输更多的是为终端用户提供文件传输,比如电影、图片、音乐之类
2013-07-07 17:42:17 1316
原创 计算机网络学习--域名解析系统DNS(10)
我们知道,计算机在网络中通信时需要有自己的唯一的IP地址,在IPV4中IP地址是由4个字节32位的二进制来表示的,我们平常经常使用点分法来记录IP地址,然而,即使是这样我们仍然需要记住4个用‘.’分开的整数,如“127.0.0.1”等等。人类是不擅长记录这些没有任何实际意思的纯数字的,所以域名系统可以帮助我们解决这个问题。我们想和一个主机通信时,我们不需要记住这个主机的IP地址,而只需要记住它
2013-07-07 16:08:31 1651
原创 计算机网络学习--用户数据报协议UDP(9)
传输层的两个主要协议:(1) TCP:transmission control protocol,传输控制协议(2) UDP:user datagram protocol,用户数据报协议传输层实现的是主机内进程之间的通信,通信时传递的数据单位叫做协议数据单元。TCP传输时称为TCP报文,UDP协议传输时称为UDP用户数据报。UDP:无连接的传输层协议,不提供流量控制功能。
2013-07-06 21:23:02 2144
原创 计算机网络学习--路由器浅谈(8)
路由器的任务是在转发分组。路由器由输入端口,输出端口和路由选择处理机和交换机构组成。路由器将输入端口接收到的数据报文,按照目的网络地址,经路由选择处理机处理后,由交换机构将接收的报文放到能够发送到目的网络的输出端口队列中等待转发。路由器的结构图如下所示:路由选择部分是主要部分,由路由选择处理机根据路由选择协议构造路由表,并经常或定期的更新路由表信息。分组转发部分主要包含
2013-07-03 17:00:27 1459
转载 BGP边界网关协议
一、BGP的概况 BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定义的;一个路由器只能属于一个AS。AS的范围从1-65535(64512-65535是私有AS号),RFC1930提供了AS号使用指南。BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。BGP是一种基于策略的路
2013-07-03 15:59:33 1924
原创 计算机网络学习--边界网关协议BGP(7)
外部网关协议:BGP(边界网关协议)BGP:不同自制系统AS路由器之间交换路由信息的协议。内部网关协议RIP或者OSPF,主要是让一个数据报在一个AS中尽可能的从源站传到目的站。但是外部网关协议BGP的使用环境却不一样。主要是由于以下两个原因:(1) 因特网规模太大,使得AS之间路由选择非常困难。(2) AS之间路由的选择必须考虑有关策略。由于上述情况,边界网关协议只能
2013-07-03 15:54:41 1940
原创 操作系统学习--CPU调度(2)
CPU调度,是多道程序操作系统的基础。计算机的吞吐率指的是计算机在单位时间内所处理的进程数。CPU调度,通过在进程之间切换CPU,从而提高计算机的吞吐量。我们知道进程的执行包括CPU执行和I/O等待周期,进程需要在这两种状态下不断切换。CPU的调度从总体上来说出现在下面四种情况下:(1) 当一个进程从运行状态切换到等待状态;(2) 当一个进程从运行状态切换到就绪状态
2013-07-03 10:54:27 1173
原创 计算机网络学习--路由信息协议RIP(6)
路由信息协议RIP:是内部网关协议中得到最先广泛使用的协议,是一种分布式的基于距离向量的路由选择协议。路由信息协议RIP要求网络中的每一个路由器都要维护一个从它自己到目的网络的距离记录,这里的距离指的是路由器到目的网络所需经过的路由器的个数。RIP中的距离也称为跳数,每经过一个路由器,跳数都会加1,RIP协议要求一条路径上所能包含的最大路由数是15个,如果超过,即相当于不可达,所以RIP协
2013-07-02 10:36:38 3919
转载 进程间通信
程序员必须让拥有依赖关系的进程集协调,这样才能达到进程的共同目标。可以使用两种技术来达到协调。第一种技术在具有通信依赖关系的两个进程间传递信息。这种技术称做进程间通信(interprocess communication)。第二种技术是同步,当进程间相互具有合作依赖时使用。这两种类型的依赖关系可以同时存在。一般而言,进程有单独的地址空间。我们可以了解下可执行程序被装载到内存后建立的一系列映
2013-07-01 21:55:55 797
转载 计算机网络学习--PING(5)
PING 工作原理 一、什么是 PING 是DOS 命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢 PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping 发 送一个 ICMP 回声请求消息给目的地并报告是否收到所希望的 ICMP 回声应答。 它是用来检查网络是否通畅或者网络连接速度的命令。 作为一个生活在网络上的管
2013-07-01 14:24:02 1979
原创 计算机网络学习--网际控制报文协议ICMP及应用(4)
ICMP(网际控制报文协议)为了更有效的转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP。ICMP作为IP数据报的数据,加上数据报的首部,组成IP数据报转发出去。ICMP允许主机或者路由器报告差错情况和提供有关异常情况的报告。ICMP报文分为两种类型:差错报告报文和询问报文。差错报告报文类型包含:终点不可达,源点抑制,时间超过,参数问题,改变路由(重定向)
2013-07-01 12:05:23 1791
原创 计算机网络学习--划分子网与CIDR(3)
IP地址的两级结构会导致IP地址的利用率并不高,比如B类网络每个网络可以容纳6万多台主机,可是一般的企业不需要这么大的容量,所以IP的资源利用率很低。另外,当一个企业需要添加新的网络时,需要到IP地址管理机构申请网络,这会带来很多不便,为了解决这些问题,提出了划分子网的概念。划分子网的基本思路:(1) 每个网络由若干个子网组成,网络之外不知道网络内的子网状况,整
2013-07-01 12:03:16 4075
原创 MySQL源代码学习环境搭建
你对MySQL感兴趣吗?你想了解MySQL的内部实现吗?如果你的回答是肯定的,那么我想你应该会想看它的源代码吧。那么怎么去看它的源代码呢?是一个个文件打开看,还是可以在IDE中打开整个项目调试呢?下面我们说说怎么配置环境在visual studio2008中调试学习源代码。前提是你已经下载了MySQL的源代码了呵呵...第一步,我们需要先下载和安装两个软件:CMake:可以从htt
2013-07-01 09:25:35 1375
基于C语言的文件夹加密
2011-12-12
基于C#的登录系统模拟
2011-11-03
AVR编程工具多功能计算器
2011-11-01
简易计算器
2011-11-01
基于51单片机的温度计设计
2011-10-30
基于51单片机的电子密码锁设计
2011-10-30
51单片机外围器件使用的头文件代码(很详细)
2011-10-30
简易的文本编辑器
2011-10-30
深入理解Andriod卷1
2014-01-14
Andriod开发权威指南
2014-01-14
几个开源的Andriod项目源码
2014-01-11
Algorithm(第4版)
2013-01-01
JAVA语言版之记事本实现
2012-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人