会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
yunfeng_net
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
2013年12月12日
忘掉旋转,利用2-3-4树,学习红黑树
摘要: 红黑树是每个节点都带有颜色属性的二叉查找树 ,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: 性质1. 节点是红色或黑色。 性质2. 根是黑色。 性质3. 所有叶子都是黑色(叶子是NIL节点)。 性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子
阅读全文
posted @ 2013-12-12 16:13 yunfeng_net
阅读(1830)
评论(1)
推荐(0)
2013年2月19日
用软件量度评估软件重构
摘要: 介绍重构[1]:对软件内部结构的一种调整,目的是在不改变"软件之可察行为"前提下,提高其可理解性,降低其修改成本。在这个定义中,"软件之可察行为"可以理解为相同的回归测试集,因此是确定、具体的。然而,虽然可以通过统计的方式计算”修改成本”,但是仍然缺乏可操作性。在本文中,把“降低其修改成本”改成“降低复杂度”。从而利用复杂性量度给出重构的量化尺度,提高了重构定义的一致性。软件量度[2][3]主要的软件量度有如下几种:1、 尺度性指标代码行数,类成员个数,方法行数:越少越好类个数:越多越好2、 结构性指标:继承深度:继承树的高度方法加权和:每个方法的环形量
阅读全文
posted @ 2013-02-19 13:28 yunfeng_net
阅读(425)
评论(0)
推荐(0)
2012年11月11日
利用ruby演示程序执行
摘要: 介绍Ruby支持元编程,简单的说就是在运行时改变程序自身。利用这一点,可以做出很有趣的程序。本文介绍利用ruby演示程序的执行过程,显示包括函数调用和数据变化。演示程序执行Ruby每个class都有一个方法method_missing(name, *args)。当调用对象的方法不存在时,系统默认调用这个方法来处理。这就相当于一个系统后门,可以得到方法调用的轨迹。下面的程序演示如何把大象放进冰箱里。class User def act f = Frig.new f.open f.put_elephant f.close endendclass Frig def in...
阅读全文
posted @ 2012-11-11 14:44 yunfeng_net
阅读(595)
评论(0)
推荐(0)
2012年10月12日
树形结构的节点搜索优化
摘要: 介绍 树形结构具有在程序中普遍性。以XML为例,是一个树形的结构;其提供的XPath,给予了全局定位每一个节点的能力。本文针对这个操作,讨论性能上的优化。分析过程采用典型的自底向上的方式:基本算法设计、算法性能考虑以及对象接口设计。 基本设计 简化起见,定义Path:<n1, n2, …, nk>。
阅读全文
posted @ 2012-10-12 13:20 yunfeng_net
阅读(1803)
评论(0)
推荐(0)
2012年7月31日
比较几种编程语言
摘要: 简介 最近要使用几种不同的编程语言,C++, java,javascript,php,python和ruby。为了避免混淆,特写此文,以备参考。 数据类型 这里数据类型指的是内部数据类型,不考虑语言内部的自动转换。 C++ java javascript php python ruby 基本类型 b
阅读全文
posted @ 2012-07-31 11:25 yunfeng_net
阅读(474)
评论(0)
推荐(0)
2012年7月5日
基于petri网分析并发控制
摘要: 1. 简介 petri网是用来分析并发行为的一种形式模型。举例来说,一个进程创建两个线程,然后等待它们结束,如下图: Figure 1:开始进程 T2: 创建; T3: 合并;T1和T2为各自线程的操作。 P5为起始控制点,其中的黑点儿为token,表示拥有控制权。经过T2以后,P5失去控制权,P0
阅读全文
posted @ 2012-07-05 16:33 yunfeng_net
阅读(1894)
评论(0)
推荐(0)
2012年6月19日
离线应用的一种设计方案
摘要: 简介所谓离线应用,就是在离线时能够把数据存储到本地,在线时同步到服务器上。HTML5提供了程序缓存和本地存储两种机制来实现, 可以用cache manifest和indexedDB来搜索相关内容。各个浏览器对此支持都不太一样,本文尝试出一种可行的方案。程序缓存程序缓存比较容易设置,只要写一个.manifest文件,再把它写到html元素的属性就可以了。我遇到的一些问题:Firefox13有提示缓存,但是离线之后看不了。Chrome19成功了。没有测试动态文件缓存例如.php,感觉即使保存下来,也就和浏览器离线浏览差不多。开启缓存之后,外链的音乐文件chrome19就不认了。有些第三方服务不能缓
阅读全文
posted @ 2012-06-19 20:39 yunfeng_net
阅读(1673)
评论(0)
推荐(0)
2012年6月11日
MVC模式的两种实例
摘要: MVC模式MVC模式提供了数据模型与数据显示的分离,使得两者可以独立演化。传统MVC这里传统MVC指以服务器脚本为主的建站方案。例如用PHP生成不同的HTML页面,各个页面之间用锚<a>来链接。对浏览器发来的请求,服务器首先进行授权认证,然后把这个请求发送(dispatch)到对应的数据处理模块,由该模块(很可能)存取数据,根据模板生成HTML页面会送给浏览器。这个方案由服务器完成MVC所有的部件,浏览器负责显示。MVC对应如下:C控制器:请求发送模块M模型:数据处理模块V视图:显示模板基于AJAX的MVC使用Ajax 减轻了浏览器与服务器之间的数据交换,因为一些视图直接在浏览器中
阅读全文
posted @ 2012-06-11 15:26 yunfeng_net
阅读(1224)
评论(0)
推荐(1)
上一页
1
2
3
公告