- 浏览: 17778 次
最新评论
文章列表
由于工作安排的原因,可能暂时不会再学python了。因此有关python的文章,这可能是最后一篇(目前)。但我会继续更新其他的东西。这篇关于最小序列的问题。我目前知道的就两种方法,一种就是穷举,这种就是我这种吊丝程序员常用的方法。方法很有效,但遇到数据很大的时候,性能就很差。或者对时间复杂度有要求的话,再使用这种方法就行不通了。我这里使用的是下面一种方法。是通过建堆的方式。这种方式会牺牲一点内存空间。但性能很好。具体的就不说了。 看代码吧
# -*- coding: cp936 -*-
#---------------------------------------------
...
网上对kmp原理的介绍:找到匹配失败时的最合适的回退位置,而不是简单的回退到子串的第一个字符(常规的枚举查找方式,是简单的回退到子串的第一个字符),即可提高查找的效率. 因此为了找到这个合适的位置,先对子串预处理,从而得到一个回退位置的数组。
理解原理后,在写代码。python实现
代码如下:
# -*- coding: cp936 -*-
#---------------------------------------------
# -
#author chile ...
额。。。 我发现一直写数据结构的可能有点枯燥。 于是我准备开始写点我常用的算法。再说,复杂的我也不会
今天,我就写个简单的归并排序。本来想写冒泡或者选择排序的。但写的时候,很好就完了,于是决定写点有意思的排序算法。
归并排序,熟悉排序算法的都应该不会陌生吧。 因此,我就不讲一堆理论(其实,我也不太清楚)。总之,了解归并排序的核心思想就对了。 当然,还是使用python实现。因为我最近在学python啊。感觉python很有意思
如有问题,请指正。
代码如下:
# -*- coding: cp936 -*-
#--------------------------------- ...
这次用完成的是二叉树,是一种简单的树型结构。同样使用python实现 多的不说了,上代码吧。
# -*- coding: cp936 -*-
#---------------------------------------------
#
# author chile
# version 1.0
# date 2014-02-17 ...
上次单链表中有个问题,就是remove 方法有误,在这里已经修正了,下面是双链表的实现。其实,双链表已比较简单,就是在存储节点中加上一个指向上个节点的引用(呵呵,这好像是java的术语) 具体代码如下:
# -*- coding: cp936 -*-
#---------------------------------------------
#
#author chile
#version 1.0 ...
学过数据结构的都知道,单链表是一种简单的数据结构,很常用。如果学会使用单链表后,在学双向链表,就很容易上手。在高级语言中,集合有的就是用双链表实现的。今天,我先完成单链表的实现,以后在写其他的。 如果有差错,请指正。
# -*- coding: cp936 -*-
#---------------------------------------------
#
#author chile
#version 1.0 ...
forkjoin应该是出来很久的技术,但我从未使用过,直到上一个项目中,有个功能点对性能要求很高,如果按照单线程遍历的方法是不行。 那就只有用分治法来实现,但在实现的过程中发现forkjoin。于是,本着“拿来主义“的精神,就去看了下。发现它刚好能满足我的需求. 下面是forkjoin的简单使用,希望对需要的人提供一些帮助.
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;
imp ...
最近几天同事叫我帮他做个下载测速,用flash做。当时,我这边项目刚做完,闲来无事。 于是,我就答应了。具体的就不说,下面是源码,呵呵,高手请绕走哈。
package
{
import flash.errors.*;
import flash.events.*;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.utils.Timer;
public class DownloadMechine
{
private var stream:URLStream ...
最近在做桌面应用,要使用rmi,于是学习下rmi的简单使用.
服务端:
package rmi.service;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
import rmi.model.*;
//此为远程对象调用的接口,必须继承Remote类
public interface PersonService extends Remote {
public List<PersonEntity> GetList() throws Remo ...
最近在重新学习设计模式,感觉对模式理解更加深刻。觉得有必要记下来。
第一个学的就是单例模式,单例模式估计是最好理解的模式了。它的作用就是防止外部创建实例,保证只有一个实例。
单例模式的常用实现方式有两种,就人们熟知的饱汉式与饥汉式,具体就不多说了。这里说下其他的实现方式
静态内部类方式:
package test.pattern.singleton.statics;
public class Singleton {
//静态内部类保证唯一性
private static class Inst {
private static Singleton inst ...
原理:
生产者-消费者(producer-consumer)是共享一个公共的固定大小的 缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入 一个新的数据项的情形,其解决方法是让生产者此时进行休眠,等待消费者从缓冲区中取走了一个或者多个数据后再去唤醒它。同样地,当缓冲区已经空了,而消费 者还想去取消息,此时也可以让消费者进行休眠,等待生产者放入一个或者多个数据时再唤醒它。
公共资源
package test.thread.producer;
import java.util.L ...
最近在学习python, 学起来很不错,在我一个初学者的眼中,这是一门很好的脚本语言。无论学习者有没有编程经验,都可以很好的学习。当然,要想学好,做练习是必不可少的。一些简单的练习,我就不再说了。在这里,我想从学习新语言的同时,正好把忘了的数据结构好好补补。因此,现在我准备实现一个hashmap,只是完成最基础的功能。毕竟,本人也是菜鸟一个,如果写的有误,请指正,勿喷哈。希望与正在学习python的朋友共同学习,交流
下面是我的代码实现
# -*- coding: cp936 -*-
#---------------------------------------------
# ...