摘要:
我在大学学的是C语言,自学和选修的是C++,刚毕业也搞过几天Jsp,写过几个Applet.后来转向delphi做桌面开发,再后来又转向C#做Web开发.最近相对比较闲,决定学习一下Java,以取长补短,经过半天的忙碌,终于搭建起了开发环境,在网上找了一篇入门的教程,经过几个小时的练习(严格说叫复习),基本熟悉了Java的语法和基本的结构.在这里对Java和C#做些简单对比:1) 历史 Java当然比C#长,而且Java脱胎于C和C++,是典型的C风格,C#也是脱胎于C和C++,但由于C#晚于Java,也借鉴了很多Java的东西(C#之父Anders Hejlsberg)其实也是微软VJ++的主 阅读全文
随笔分类 - 1、C#
排序网络(C#模拟)
2012-08-04 17:23 by java线程例子, 195 阅读, 收藏,
摘要:
排序网络利用比较器进行简单的组合形成排序网络,利用并行方式执行,可以实现高效的排序算法,排序网络如果用软件实现,其实没有什么大的意义,因为目前的计算机虽然有多核,也可以用多线程,在一定程度上实现真正的并行,但其并行能力相对于稍具规模的排序网络来说都是有限的.排序网络用硬件来实现就非常具有优势了,排序网络的基本单元比较器的结构非常简单,适合大规模应用,还可以模块化.在组成比较排序网络后,在有限的时钟周期序列下就可以完成输入序列的排序(不需要通常系统意义下的并行).在规模为n的排序网络中,序列长度1-n的序列排序用时是一样的.当然,排序网络用硬件实现的一个缺点就是排序规模n扩展比较困难.对于现代的 阅读全文
单源最短路径算法(有向无回路)
2012-08-01 21:18 by java线程例子, 322 阅读, 收藏,
摘要:
/// <summary> /// 有向无回路图中的单源最短路径算法 /// </summary> public class DAG_Shortest_Paths { /// <summary> /// 有向无回路图中的单源最短路径 /// </summary> /// <param name="g">有向无回路图</param> /// <param name="s">源点s</param> public void DAGShortestPaths(Grap 阅读全文
单源最短路径算法(BellmanFord算法)
2012-08-01 21:13 by java线程例子, 500 阅读, 收藏,
摘要:
/// <summary> /// 单源最短路径BellmanFord算法 /// </summary> public class BellmanFordAlg { /// <summary> /// 单源最短路径算法(BellmanFord算法) /// </summary> /// <param name="g">图</param> /// <param name="s">原点</param> /// <returns></returns 阅读全文
单源最短路径算法(Dijkstra算法)
2012-08-01 21:09 by java线程例子, 311 阅读, 收藏,
摘要:
1、图形相关类(前面有个,但这里增加了一些属性) /// <summary> /// 图类,由节点和边构成. /// </summary> public class Graphic { /// <summary> /// 用于图形访问临时公共变量 /// </summary> public int FinishOrder { get; set; } /// <summary> /// 用于图形访问临时公共变量 /// </summary> public int... 阅读全文
R语言学习系列(数据挖掘之决策树算法实现--ID3代码篇)
2012-07-18 21:26 by java线程例子, 731 阅读, 收藏,
摘要:
1、辅助类,用于计算过程和结果存储/// <summary> /// 决策树节点. /// </summary> public class DecisionTreeNode { /// <summary> /// 类型:分支或叶子 /// </summary> public string Type { get; set; } /// <summary> /// 关键字一般存当前属性因子 /// </summary> public string Key { ge... 阅读全文
几个有关图的算法2(DFS,TopoLogicalSort) .
2012-07-09 22:36 by java线程例子, 325 阅读, 收藏,
摘要:
深度优先算法和拓扑算法是很多算法的基础,只得深究:/// <summary> /// 广度搜索算法,图 /// </summary> public partial class GraphicSearchAlg { /// <summary> /// 深度优先搜索算法,这里只是计算深度. /// </summary> /// <param name="g">图,基于邻接表示</param> /// <param name="s">源点</param> publi 阅读全文
几个有关图的算法1(图定义和BFS)
2012-07-09 22:32 by java线程例子, 265 阅读, 收藏,
摘要:
这几个算法主要是后面会有用,所以这里给出.1)图的结构定义(跟前面的差不多,只是为了方便算法,这里做了增加: /// <summary> /// 图类,由节点和边构成. /// </summary> public class Graphic { /// <summary> /// 用于图形访问临时公共变量 /// </summary> public int FinishOrder { get; set; } /// <summary> /// 用于图形访问临时公共变量 //... 阅读全文
最小生成树算法(类Prim算法的笨办法)
2012-06-24 16:46 by java线程例子, 296 阅读, 收藏,
摘要:
这个算法是我自己想的最笨最原始的算法,原理跟Prim类似,但不同的是这里不用处理最小优先级队列,当然算法的时间复杂度要高些(该算法针对的是无向连通图,对于有向连通图,算法原理一样,但算法代码需要做一些处理),下面看代码:1、类和树的定义可参考前面的博文。2、算法类:public class PrimAlg { public Tree MST_SimpleAlg(Graphic g,Node root) { Tree theMST = new Tree(); //最小生成树节点 Dictionar... 阅读全文
最小生成树算法(Kruskal算法)
2012-06-24 16:38 by java线程例子, 355 阅读, 收藏,
摘要:
算法导论看到一半,觉得还是有必要继续看,边看边试试,下面是最小生成树的Kruskal算法,这个算法原理看起来很复杂,但实现起来很简单:开始的时候是每个顶点一棵树,并将边按权重升序排列。然后从前到后按循序选边,如果当前选择的边的两个顶点分在两棵不同的树中,则将该边加入到最小生成树中,并合当前边连接的两棵树,如果边得两个顶点在相同的树中,则不做任何处理,需要注意的是这个算法是针对无向连通图的,如果是有限图,则需要在算法中做些处理,但算法原理是一样的。看代码:1、树和图相关类 /// <summary> /// 图类,由节点和边构成. /// </summary> publi 阅读全文
分享一个小程序(Oralce数据库结构对比程序)
2012-06-02 13:01 by java线程例子, 250 阅读, 收藏,
摘要:
因为在系统中,一个业务数据库往往存在多份物理数据库,比如开发数据库,测试数据库和生产数据库,加上还有一些其它用途的数据库,要维持这些数据库之间的结构统一也不是很容易,所以自己弄了个简单的数据库表结构对比程序,用来分析各个数据库之间的差异.这里只是简单的比较,其实在这个基础上还可以做差异自动修复.下面是代码:/建立一个对比结果数据集,两列,结果含义为: //第1列,第2列 含义 // 空 非空 第2列所示表字段在第1个数据库中不存在 // 非空 空 第1列所示表字段在第2个数据库中不存在 ... 阅读全文
log4Net使用及配置注解(整理)
2012-06-02 08:28 by java线程例子, 532 阅读, 收藏,
摘要:
%d:输出日志时间点的日期或时间,可以在其后指定格式,比如:%d{yyyy-mm-dd hh:mm:ss},输出类似:2005-7-19 17:49:27,刚好适合插入sqlserver; %t:产生该日志事件的线程名; %p:日志的log_level,如debug、warn或者info; %c:输出所属的类目,通常就是所在类的全名,如“inotes.default”; %m:日志的内容; %l:输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。 %n 输出一个回车换行符,windows平台为“\r\n”,unix平台为“\n” 我们接着看Log4net的核心组成部分,Log 阅读全文
开发错误处理记录(framework框架版本导致的引用问题)
2012-06-02 07:47 by java线程例子, 192 阅读, 收藏,
摘要:
微软的framework框架其实分为很多不同的版本,不同的版本底层的支持度是不一样的,特别是在建立客户端程序时要特别注意,有些框架下,引用一些dll时会发生无法引用的问题.比如log4Net.dll在framework client profile框架下就无法引用.刚引用的时候代码没提示错误,但一编译就出错,提示找不到对象或方法。 阅读全文
对离散型随机分布的理解
2012-05-05 23:02 by java线程例子, 691 阅读, 收藏,
摘要:
01分布是比较简单的离散型分布,是伯努利分布的一个特例。伯努利分布:F(x)= ∑(k:0->x){C(n,k) p^k(1-p)^(n-k)},取n=1,即做一次伯努利试验,则得01分布。当n->∞时,p比较小的时候,P(X=k)=C(n,k) p^k(1-p)^(n-k,设λ=pn,带入可得P(X=k)= λ^k * e^(-λ) / k!,其实就是泊松分布。伯努利分布只有在n比较大和p比较小的时候可以近似为泊松分布。泊松分布F(x)=∑(0,x){λ^k * e^(-λ) / k!}.随机变量的是概率空间到实数的映射函数,每个基本样本都有一个实数对应,但还必须满足,对于所有的 阅读全文
C#动态对象(dynamic)示例(实现方法和属性的动态)
2012-05-04 12:19 by java线程例子, 387 阅读, 收藏,
摘要:
C#的动态对象的属性实现比较简单,如果要实现动态语言那种动态方法就比较困难,因为对于dynamic对象,扩展方法,匿名方法都是不能用直接的,这里还是利用对象和委托来模拟这种动态方法的实现,看起来有点javascript的对象味道:1)定义一个委托,参数个数可变,参数都是object类型:这里的委托多有个dynamic参数,代表调用这个委托的动态对象本身.public delegate object MyDelegate(dynamic Sender, params object[] PMs);2)定义一个委托转载对象,因为dynamic对象不能直接用匿名方法,这里用对象去承载:public c 阅读全文
利用ODP.Net进行批量插入和更新
2012-05-02 16:18 by java线程例子, 555 阅读, 收藏,
摘要:
最近做的项目需要将本地文件(格式规整)上传到服务器,并插入到数据库表中,开始采用的是最原始的办法,就是将文件上传到服务器,然后读文件,一行一行的拼接sql语句插入到数据库,5M近10W条的记录需要5分钟,实在无法让人忍受,虽然在服务器利用oracle的loader程序可以实现格式文件的导入,但必须依赖这个程序,为了便于以后程序的维护,放弃了该方案,后来经过搜索,觅得一解决方案,利用ODP.Net本身提供的一种数组参数功能来实现,结果整个时间锐减到3秒完成,其中数据插入到数据库时间更是从5分多钟锐减到十分之一秒以内,方法如下:private void ExecSQL(string[] Cards 阅读全文
开发错误处理记录(无法激活服务,因为它不支持 ASP.NET 兼容性)
2012-04-30 22:42 by java线程例子, 472 阅读, 收藏,
摘要:
无法激活服务,因为它不支持 ASP.NET 兼容性错误提示:无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性。请在 web.config 中关闭 ASP.NET 兼容性模式或将 AspNetCompatibilityRequirements 属性添加到服务类型且同时将 RequirementsMode 设置为“Allowed”或“Required”。默认情况下ASP.NET兼容性支持是关闭的,但很多时候需要打开Asp.Net的兼容性来利用Asp.Net的一些特性(使用session,上下文等),具体可参考http://msdn.microsoft 阅读全文
ADO.Net(ODP.NET)执行命令时参数对象不能共用
2012-04-16 14:34 by java线程例子, 182 阅读, 收藏,
摘要:
今天在测试分布式数据库访问时,遇到异常:OracleParameter已在对象集合中,刚开始的时候还以为是重复添加的问题,经过多方测试还是有问题,后来将传入的参数克隆一份赋给命令参数,问题解决.后面觉得很奇怪,就去网上查了下,好像是这些参数对象不能同时添加到多个命令中,具体机制就不得而知了.但一个参数对象被添加到多个命令中,实际上都是指向同一份,对象还是同一个,如果ADO在底层会修改命令参数(返回值参数肯定得修改),那么不允许一个参数对象添加到多个命令中就很容易理解了.因为那样会造成混乱. private void PrepareCommand(OracleCommand Command, O 阅读全文
WinPhone7使用调用WCF传递对象
2012-04-10 13:53 by java线程例子, 185 阅读, 收藏,
摘要:
很少做手机开发,今天没事,做了个小小的实验,一般来讲,我学东西,只要能连上后台数据,基本上就可以了,因为前台很多东西要么不难,要么需要的是创意和美工,这都是我的薄弱之处,也就没兴趣深入了.WCF大家估计都必须交熟悉,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Web;using System.Text;namespace WcfS 阅读全文
自己最近写的一组日志处理类(线程调度优化)
2012-04-01 08:18 by java线程例子, 1455 阅读, 收藏,
摘要:
前面分享的一篇文章<<自己最近写的一组日志处理类(支持高并发处理)>>里写了一个多线程的写日志的类,当时测试的时候没有太注意,后面发现这个日志类占用cpu太厉害,经过调试发现问题出在对于线程的挂起(Suspend)和唤醒(Resume)上面(这两个方法已经在新的框架里里面被废掉了).我调用这两个方法的目的就是在没有日志写的时候,线程不要再运行,等待有需要写日志的时候再继续工作.后面改了一种方式来实现这个目的,CPU占用问题就解决了,当然下面的这种方式也是对线程挂起和唤醒的一种新的替代方式,下面是修改后的代码,注释很详细,原来的代码大家请参考前面的博文: /// < 阅读全文