2013年7月27日

[置顶] 写好最简单的冒泡排序

摘要: 冒泡排序,真的很简单,不是嘛,如果给你15分钟,也许你会很快就写出来一个,真的,我相信你,而且说不定考虑的还是相当周全滴,在此仅以此博客记录一下,我所认识的冒泡排序。冒泡排序,为什么取这个名?你可以想想池塘里的气泡,从最底部向最上部浮起的过程,是不是由小变大的过程中,这是一个物理知识,就不用说了吧,不知道的,回去看看初中科本吧,因此浮到水面的气泡是不是最大的,这也就是取名冒泡的原因啦,浮到最上面的就是最大的,当然你别认为冒泡只能实现从小到大排序,大与小本身就是一种相对概念~冒泡排序的思路(从小到大排序)1:比较相邻的元素,如果第一个元素比第二个元素小,就将其交换之2:对每一对相邻元素都做同样的 阅读全文
posted @ 2013-07-27 21:46 you Richer 阅读(186) 评论(0) 推荐(0) 编辑

python scrapy 基础

摘要: scrapy是用python写的一个库,使用它可以方便的抓取网页。主页地址http://scrapy.org/文档http://doc.scrapy.org/en/latest/index.html安装sudo pip install scrapy一个简单的教程http://doc.scrapy.org/en/latest/intro/tutorial.html如果你对这些概念有了解,使用上面的教程会比较容易. 它们是json, xpath, 正则表达式,生成项目scrapy提供一个工具来生成项目,生成的项目中预置了一些文件,用户需要在这些文件中添加自己的代码。打开命令行,执行:scrapy 阅读全文
posted @ 2013-07-27 21:44 you Richer 阅读(494) 评论(0) 推荐(0) 编辑

hdu2531之BFS

摘要: Catch him Time Limit: 5000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 444Accepted Submission(s): 204 Problem Description 在美式足球中,四分卫负责指挥整只球队的进攻战术和跑位,以及给接球员传球的任务。四分卫是一只球队进攻组最重要的球员,而且一般身体都相对比较弱小,所以通常球队会安排5-7名大汉来保护他,其中站在四分卫前方、排成一线的5名球员称为进攻锋线,他们通常都是135... 阅读全文
posted @ 2013-07-27 21:42 you Richer 阅读(231) 评论(0) 推荐(0) 编辑

Direct3D 11的流水线

摘要: 流水线流水线(Pipeline)是理解D3D必须要掌握的概念。整个流水线有很多步骤,有的步骤是固定功能,不用怎么配置,有的步骤是要写代码的,也就是所谓的着色器程序(Shader)。一般来说,将流水线分为两类:渲染流水线和计算流水线。严格地说并这有这么明确的区分,因为他们都可以干别的事。但这里还是按这种分类来说。 渲染流水线 最开始的显卡加速器使用硬件的顶点变换来实现3D加速。现在几乎可以在显卡上实现任何算法了。下图是具体的流程: 蓝底的是可编程的步骤,绿底的是固定功能的步骤。每一步都定义了输入和输出。Input Assembler:是入口,负责从资源(Resource)中读取输入数据,然后装配 阅读全文
posted @ 2013-07-27 21:40 you Richer 阅读(274) 评论(0) 推荐(0) 编辑

Direct3D 11的资源

摘要: 资源(Resource)如果把渲染流水线比喻成汽车装配线,资源就是流水线上需要输入的东西。资源可分为两类:Textures(纹理)和Buffers(缓冲区)。Textures可以简单地分为1维,2维,3维的形式。 Buffers可以认为都是1维的(有时候是0维的,比如一个点)。但还是可以分为Vertex,Index,Constant,Structured,Append,Consume,Byte Address。 资源必须与流水线绑定才可以使用。 资源视图(Resource View)资源视图帮助开发者确定资源的用途,分4类:render target viewdepth stencil vie 阅读全文
posted @ 2013-07-27 21:38 you Richer 阅读(198) 评论(0) 推荐(0) 编辑

Perl 多线程模块 Parallel::ForkManager

摘要: Perl 多线程模块 Parallel::ForkManager一个简单的并行处理模块。这个是用来对付循环的多线程处理。 放在循环前面。Table of Contents1 Synops内容简介1Synops内容简介程序的格式如下: 1: use Parallel::ForkManager; 2: 3: $pm = Parallel::ForkManager->new($MAX_processes) 4: # 设置最大的线程数目 5: 6: foreach $data (@all_data) 7: { 8: # Forks and returns the pid f... 阅读全文
posted @ 2013-07-27 21:36 you Richer 阅读(682) 评论(0) 推荐(0) 编辑

POJ 3450 Corporate Identity (KMP+暴搞)

摘要: 题意:给定N个字符串,寻找最长的公共字串,如果长度相同,则输出字典序最小的那个。找其中一个字符串,枚举它的所有的字串,然后,逐个kmp比较.......相当暴力,可二分优化。#include #include #include #include #include #include using namespace std;char str[4111][221];int next[222];void getnext(char *t) { int i=0,j=-1; int len = strlen(t); next[0] = -1; while(i > n && n) { . 阅读全文
posted @ 2013-07-27 21:34 you Richer 阅读(233) 评论(0) 推荐(0) 编辑

hdu 2853

摘要: 虚拟赛一开始lyf就对我说这是一道匹配的题目,我一看明显裸的最优匹配,敲完提交wrong,题目要求改变尽量少的公司,就是如果遇到相等的权值,优先选择跟他原来匹配的,KM匹配是按序号大小来的,如果一个公司原来匹配的序号较大,前面有权值相等的点时,KM就会选择前面的点参加匹配。想了好长时间不知道怎么去优先选择原来匹配的边,最后想着如果把原来匹配的边变得大一些的话,就可以,但是变大的话就会影响最优匹配的总值,而且变大的话还会影响原来比他大的权值,所以就是所有的权值都得扩大,我想到的是都*100,原来匹配的边再加1,因为最多选50条边,也就是最多有50个01相加,不会超过一百,得到的答案除以一百,就把 阅读全文
posted @ 2013-07-27 21:32 you Richer 阅读(191) 评论(0) 推荐(0) 编辑

我所理解的设计模式(C++实现)——中介者模式(Mediator Pattern)

摘要: 概述: 假设我们开发一个图片处理软件,里面肯定包括很多相关功能,比如说剪切,旋转,滤镜,美化等等,而我们这些功能所要处理的对象是固定的,就是我们所显示的那张图片。但是我们不能把所有的功能罗列到一个tab上,虽然这样处理方便但是不美观。这是我们可以这样子:用一个中介者类负责所有功能的初始化和具体执行,我们需要功能时直接调用中介者类即可。 中介者模式就是定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。类图和实例 Mediator类:抽象中介者,定义了同事对象交互的接口。ConcreteMediator类... 阅读全文
posted @ 2013-07-27 21:30 you Richer 阅读(192) 评论(0) 推荐(0) 编辑

Object-c学习之路十二(OC的copy)

摘要: oc中的拷贝分为:copy(浅拷贝)和mutablecopy(深拷贝)。浅拷贝也为指针拷贝,拷贝后原来的对象计数器会+1;深拷贝为对象拷贝,原来的对象计数器不变。注意:自定义对象拷贝时要实现NSCoping协议或NSMutableCopying协议.且构造方法和copyWithZone方法中最好用[self class]来代替类名 下面以NSString的拷贝 和Student,DoodStudent的copy(实现NSCoping协议)为例展示:OC学习基本快告一段落了,终于可以见到IOS界面了呵呵呵呵。。。。。闲话少说直接上代码: 主函数://// main.m// Copy///... 阅读全文
posted @ 2013-07-27 21:28 you Richer 阅读(202) 评论(0) 推荐(0) 编辑

java动态代理和cglib动态代理

摘要: 动态代理应用广泛,Spring,Struts等框架很多功能是通过动态代理,或者进一步封装来实现的。常见的动态代理模式实现有Java API提供的动态代理和第三方开源类库CGLIB动态代理。Java API提供的动态代理是基于类反射实现的,用到的类有:java.lang.reflect.InvocationHandler;java.lang.reflect.Method;java.lang.reflect.Proxy; 其实现是通过Proxy类的newProxyInstance()方法产生代理对象。自定义动态代理类需要实现InvocationHandler接口,该接口只有一个invoke()方法 阅读全文
posted @ 2013-07-27 21:26 you Richer 阅读(225) 评论(0) 推荐(0) 编辑

hdu 3718

摘要: 这题看了一会就发现是匹配问题,k个字母跟给出的k个字母间匹配,字母间上下建边,权值为1就是求最优匹配了, #include#include#define N 30#define inf 0x3fffffffint map[N][N],lx[N],ly[N],sx[N],sy[N],d[N],match[N],n;int find(int x){ int i; sx[x]=1; for(i=0;itemp?temp:d[i]; } return 0;}int KM(){ int i,j,k,min,sum; memset(match,-1,sizeof(match)); memset(ly... 阅读全文
posted @ 2013-07-27 21:24 you Richer 阅读(269) 评论(0) 推荐(0) 编辑

Oracle—RMAN备份(三)

摘要: 一.增量备份的相关概念 1.在前面说明了RMAN的完整备份,完整备份是备份所用使用过的块,不备份没有使用的过的块;增量备份只备份自上次备份以来更改过的块。 2.即使RMAN的默认操作是在增量备份时扫描整个数据文件来确定哪些块已经更改,也仍然节省时间,因为在所有情况下,瓶颈都在于对磁盘的写操作,而不是文件的读取。如果再启用块变更跟踪,这样就不用扫描整个文件了,备份时间也大大减少了。 3.用户管理的备份是不能实现增量备份的,RMAN可以实现。 4.增量备份分为积累增量备份和差异增量备份,积累增量备份是自上次完整备份以来所有更改过的块;差异增量备份是自上次增量备份以来更改的所用块。 二.增量备份的级 阅读全文
posted @ 2013-07-27 21:22 you Richer 阅读(156) 评论(0) 推荐(0) 编辑

微信被光缆所断-脆弱的行业

摘要: 脆弱的是网络设计,而不是网络本身! 我不晓得为何挖断一根线就能宕机数个小时,这明显是一个物理灾难,为何会影响业务逻辑那么久? 网络是分层设计的,一个TCP段丢失了,协议层就会重传,一个有连接链路帧丢失了,甚至IP都感觉不到,不影响上层在于下层提供的冗余!如果说应用服务器不堪重负或者其它原因宕机数个小时,那可以理解,毕竟问题就是出在应用层,但是光缆挖断是物理层的事故,应该由物理层的高可用性来解决才对! 事后看了微信的架构设计,真的是太完美了,容错,监控可以说是做到了极致,信息超级详细,那怎么还会出问题呢?因为这些都是应用层意义上的!也算腾讯那帮人还懂点网络,在最后提到了网络容错,排在最后并不是. 阅读全文
posted @ 2013-07-27 21:20 you Richer 阅读(180) 评论(0) 推荐(0) 编辑

hdu 3722

摘要: 单词间形成环,求最大值,,KM,,,,, #include#include#define N 210#define inf 0x3fffffffint map[N][N],match[N],lx[N],ly[N],sx[N],sy[N],d[N],n;int find(int x){ sx[x]=1; for(int i=0;itemp?temp:d[i]; } return 0;}int KM(){ int i,j,k,sum,min; memset(match,-1,sizeof(match)); memset(ly,0,sizeof(ly)); for(i=0;ilx[i]... 阅读全文
posted @ 2013-07-27 21:16 you Richer 阅读(173) 评论(0) 推荐(0) 编辑

几道php基础面试题

摘要: 前言昨晚实验室一师弟在微薄上@我,给我发了几道php的基础面试题,这里把我写的答案贴出来 题目 (1)写一个函数获取URL的文件后缀,例如“http://www.feiyan.info/test.php?c=class&m=method”(获得php或者.php) = 0;) { $new_str = ""; for ($j = $i; $j > $i - 3 && $j >= 0; $j --) { $new_str .= $str[$j]; } $arr[] = $new_str; ... 阅读全文
posted @ 2013-07-27 21:14 you Richer 阅读(222) 评论(0) 推荐(0) 编辑

hdu 2846

摘要: 字典树的变形,常规字典树用来求前缀的,所以把每个单词拆成len个词建树,为了避免abab这样的查ab时会出现两次,每次加一个标记,如果该节点上次的建树的单词与本次相同就不更新,否则更新 #include#include#includestruct tree{ struct tree *son[26]; int count; int flag;}*root;void insert(char *p,int id){ int i,k,j; tree *cur=root,*next; int len=strlen(p); for(i=0;ison[k]!=NULL) cur=cur->s... 阅读全文
posted @ 2013-07-27 21:12 you Richer 阅读(142) 评论(0) 推荐(0) 编辑

OpenVPN莫名其妙断线的问题及其解决

摘要: 1.问题不得不说,这是一个OpenVPN的问题,该问题几乎每个使用OpenVPN的人都碰到过,也有很多人在网上发问,然而一直都没有人能给出解决办法,甚至很多帖子上表示因为这个问题而放弃了使用OpenVPN。说实话,我面临这个问题已经两年有余,自从第一次接触OpenVPN,这个问题就一直困扰着我,去过国内外各大论坛也没有找到满意的结果。这几天终于有点闲暇,我决定自己去摸索一下,要感谢公司能给我提供一个环境!最终,我取得了突破性的进展,还是那句话,我把这个结果贴了出来,就是为了以后人们再面临这个问题时可以多一个可选的答案。 顺便说一下,并不能说明网上就没人解决过这个问题,因为我所能看到并理解的,. 阅读全文
posted @ 2013-07-27 21:10 you Richer 阅读(318) 评论(0) 推荐(0) 编辑

wifi_uplink脚本分析

摘要: ~ >: vim apps/tools/wifi_uplink #!/bin/sh # Copyright (C) 2012 GuoWenxue # This Shell scripts used to NAT by iptables, to make wlan0 as the downlink device # and set the uplink device as eth0/ppp0, it will be called by crond DOWNLINK_DEV="wlan0"#可以改为ppp0 DEF_UPLINK_DEV="eth0" 阅读全文
posted @ 2013-07-27 21:08 you Richer 阅读(233) 评论(0) 推荐(0) 编辑

linux学习方法之二

摘要: 相信不少想学习linux的新手们正愁不知道看什么linux学习教程好,下面小编给大家收集和整理了几点比较重要的教程,供大家学习,如需想学习更多的话,可到wdlinux学堂寻找更多教程。安装php扩展模块之phpize安装PHP的模块一个方式是加上相关参数重新编译PHP 一个是用到phpize,比如eaccelerator,memcache等,这个比较方便,不用重新编译PHP,也可以随时启用或停用 这里说下phpize的使用方法 在安装了PHP的系统里,都会有这个文件,在wdlinux的系统里,这个文件在 /www/wdlinux/php/bin/phpize 然后进到相应要编译的源码目... 阅读全文
posted @ 2013-07-27 21:07 you Richer 阅读(125) 评论(0) 推荐(0) 编辑