Fork me on GitHub

2013年9月3日

摘要: 基础排序算法之快速排序(Quick Sort)快速排序(Quick Sort)同样是使用了分治法的思想,相比于其他的排序方法,它所用到的空间更少,因为其可以实现原地排序。同时如果随机选取中心枢(pivot),它也是一个随机算法。最重要的是,快速排序(Quick sort)的算法分析的过程非常给力。本文首先描述问题,再说明快速排序(Quick Sort)的基本思路并给出伪代码,之后贴出自己的Python代码。在验证完算法的正确性之后,给出如何选择好的中心枢(pivot)的方法,即随机快速排序(Randomized Quick sort),并贴代码。最后进行算法复杂度分析。问题描述问题描述和其他排 阅读全文
posted @ 2013-09-03 15:57 HackerVirus 阅读(571) 评论(0) 推荐(0)
摘要: 根据字典和指定长度,按排列组合生成字符串(七个方案)命题根据指定的字符集合(字典),按排列组合的规则(允许重复),生成指定长度的所有字符串。如下代码:class Program{ static void Main(string[] args) { string dic = "abcdef"; int len = 3; int top_last_N = 5; IGenerator g = new Generator1(); var result = g.Generate(dic, len) ?? new List(... 阅读全文
posted @ 2013-09-03 15:54 HackerVirus 阅读(992) 评论(0) 推荐(0)
摘要: 玩转数据库之 Group by Grouping有的时候我们要从数据库里把数据组织成树结构再展现到页面上像下面这样今天我们用Group 和Grouping实现它,并总结一下它俩。先看一下概念,再用代码一点一点去理解它们,最后我会给出完整的代码Group By :语句用于结合合计函数,根据一个或多个列对结果集进行分组。Grouping :指示是否聚合 GROUP BY 列表中的指定列表达式。在结果集中,如果 GROUPING 返回 1 则指示聚合; 返回 0 则指示不聚合。如果指定了 GROUP BY,则 GROUPING 只能用在 SELECT 列表、HAVING 和 ORDER BY 子句. 阅读全文
posted @ 2013-09-03 15:23 HackerVirus 阅读(232) 评论(0) 推荐(0)
摘要: Atomic变量和Thread局部变量前面我们已经讲过如何让对象具有Thread安全性,让它们能够在同一时间在两个或以上的Thread中使用。Thread的安全性在多线程设计中非常重要,因为race condition是非常难以重现和修正的,我们很难发现,更加难以改正,除非将这个代码的设计推翻来过。 同步最大的问题不是我们在需要同步的地方没有使用同步,而是在不需要同步的地方使用了同步,导致效率极度低下。所以,我们要想办法限制同步,因为无谓的同步比起无谓的运算还更加让人无语。 但是否有办法完全避免同步呢? 在有些情况下是可以的。我们可以使用之前的volatile关键字来解决这个问题,因为vola 阅读全文
posted @ 2013-09-03 15:21 HackerVirus 阅读(370) 评论(0) 推荐(0)
摘要: 面试题分享,麻麻再也不用担心我的面试了面试对于搞IT的人来说,尤其是对于应届毕业生来说尤为重要。9月到了,很多单位已经做好了招新的准备,同学么,你们准备好了吗?作为应届毕业生的我,和你们一起战斗,今天我和大家分享所看过的面试题目,希望能够帮到大家。这里,我只贴出面试题目,有题目不明白,想获取答案的在文章后评论留言,我会一一回复,当然也希望大家能够互动,知道的筒子们也可以帮助他们答疑解惑!What is Big “O” notation? How is it utilized?What is a virtual function? How does a pure virtual function 阅读全文
posted @ 2013-09-03 15:13 HackerVirus 阅读(222) 评论(0) 推荐(0)
摘要: 最近一直在总结反思自己,虽然现在在公司实习了,但是并没有感觉到自己有非常大的进步,也没有以前在学校开发出了什么东西让自己非常有成就的感觉,于是趁着现在请假在学校上课的空余时间,从基础开始重新温故学习下Java,充实下自己。一、数据类型从下图中,我们可以很清晰的看出Java中的类型,其中红色方框中的是Java的4种基本数据类型:下面我们来详细讲解上图中的基本类型:1.整数类型 1) 在Java中,整数类型共有4种,它们有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性 2) Java语言中,整数有三种表现形式,分别是: a. 十进制整数,如 120, -31, 0. 阅读全文
posted @ 2013-09-03 10:01 HackerVirus 阅读(304) 评论(0) 推荐(0)
摘要: JAVASCRIPT函数定义表达式和函数声明的区别在javascript中,函数有两种定义写法,函数定义表达式和函数声明,其例子分别如下所示: var test = function(x){ return x; } function test(x){ return x; } 尽管函数定义表达式和函数声明语句包含相同的函数名,并且都创建了新的函数对象,但是这二者却有区别。 函数声明语句中的函数名是一个变量名,变量指向函数对象。 函数定义表达式和通过var声明变量一样,其函数被提前到了脚本或函数的顶部,因此它在整个脚本和或函数内都是可见的。这样的话,只有函数变量声明提前了... 阅读全文
posted @ 2013-09-03 10:00 HackerVirus 阅读(162) 评论(0) 推荐(0)
摘要: 单链表线性表的链式表示和实现 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以使不连续的)。因此,为了表示每个数据元素ai与其直接后继数据元素ai+1之间的逻辑关系对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。这两部分信息组成数据元素ai的存储映像,称为结点。 结点包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称做指针或链。n个结点(ai(1next是指向第i+1个数据元素(结点ai+1)的指针。换句话说,若p->data 阅读全文
posted @ 2013-09-03 09:56 HackerVirus 阅读(241) 评论(0) 推荐(0)
摘要: Asp.net+jquery+ajaxpro异步仿Facebook纵向时间轴效果在一个项目中,用到了时间轴展示产品的开发进度,为了更好用户体验,想到了Facebook的timeline效果,搜了一下,找到了这个效果。结合asp.net和ajax异步加载数据。先上效果图:该效果使用了jquery、jQuery Masonry 插件。大家可以自由发挥,再加上滚动加载效果就更好了。参考这篇文章:[用 jQuery Masonry 插件创建瀑布流式的页面]Demo萌点这里:百度网盘下载http://pan.baidu.com/share/link?shareid=2913037399&uk=1 阅读全文
posted @ 2013-09-03 09:55 HackerVirus 阅读(282) 评论(0) 推荐(0)
摘要: 基于Hadoop开发网络云盘系统客户端界面设计初稿前言: 本文是《基于Hadoop开发网络云盘系统架构设计方案》的第二篇,针对界面原型原本考虑有两个方案:1、类windows模式,文件夹、文件方式,操作习惯完全按照Windows方式进行,提供右键菜单管理命令。2.浏览列表式,提供常规界面按钮式命令。本文采用的方式是文件清单列表式,至于第一种方式,另列专题进行说明。一、界面原型二、设计说明 连接管理:建立连接、断开连接、设置连接参数 文件操作:浏览文件、上传文件、下载文件、删除文件、导入文件(批量)、刷新列表 用户管理:查看用户信息、修改用户密码 三、遗留问题 1.文件操作长连接还是... 阅读全文
posted @ 2013-09-03 09:54 HackerVirus 阅读(304) 评论(0) 推荐(0)