自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jack Lee

I am a slow walker, but i never walk backwards.

转载 Python内置方法的时间复杂度

本文转载自橘子一方的N维空间,特别表示感谢! 本文翻译自Python Wiki 本文基于GPL v2协议,转载请保留此协议。本页面涵盖了Python中若干方法的时间复杂度(或者叫“大欧”,“Big O”)。该时间复杂度的计算基于当前(译注:至少是2011年之前)的CPython实现。其他Python的实现(包括老版本或者尚在开发的CPython实现)可能会在性能表现上有些许小小的差异,但一般不超

2016-08-27 15:56:14 2468

原创 最长递增子序列LIS的O(nlogn)的求法

最长递增子序列(Longest Increasing Subsequence)是指n个数的序列的最长单调递增子序列。比如,A = [1,3,6,7,9,4,10,5,6]的LIS是1 3 6 7 9 10。我们现在希望编程求出一个给定的数组,我们能得到LIS的长度。 关于LIS的求法使用DP算法的文章也很多,时间复杂度是O(n2),这里,我们介绍一个只需要不到15行的Python代码或者Java代

2016-08-17 10:57:06 7078 4

原创 后缀数组以及利用后缀数组求取最长公共字串

后缀树组是一个字符串的所有后缀的排序数组。后缀是指从某个位置 i 开始到整个串末尾结束的一个子串。字符串 r 的从 第 i 个字符开始的后缀表示为 Suffix(i) ,也就是Suffix(i)=r[i..len(r)] 。如下图所示: 对于字符串banana,所有的后缀字符串是banana,anana,nana,ana,na,a。我们对其进行排序得到右边的排序序列,其相应的索引值这时候就构成

2016-08-16 20:51:36 907

原创 Python二维数组的创建

如果在Python中想要创建一个二维数组,我们该如何写呢?>>> A = [0]* 3 * 4>>> B = [[0]*3] * 4是A还是B呢?当然是B了!还是先输出看一下:>>> A[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]>>> B[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]不出所料,我们应该按照B = [[0]

2016-08-16 11:09:25 11793 1

原创 字符串匹配之KMP、BoyerMoore、Sunday算法

[TOC] 字符串匹配的算法想必大家都见得多了。之前在看《算法设计与分析基础》一书的时候,书中介绍了BoyerMoore算法和大名鼎鼎的KMP算法,当时只是用Swift实现了一遍。今天在尝试用Python编写KMP的时候,无意中看到Sunday算法,该算法的编写比BoyerMoore简单,也比BoyerMoore快,更是胜过KMP,这里就把这三种方法总结一下。KMP算法关于KMP算法,我是直接看的

2016-08-15 14:36:55 1588

原创 Python基础算法/剑指offer

之前完成了个人的Python编写,包括常见的一些基础算法,剑指offer的绝大多数算法的编写。都上传到github上了,很多里面都有自己几个测试用例,不过都注释掉了,直接去掉注释就好。如果对你有帮助,请记得点击github工程上的star,^_^ 现在总结如下:数据结构markdown格式 链表及常见操作 平衡查找树AVL 三种方法检测变位词Anagram 构建堆 二分查找 二叉查找树

2016-07-30 10:50:28 28990 11

原创 不用加减乘除做加法中Python存在的bug

今天在刷《剑指offer》的时候,在做面试题47的时候,碰到了一道题: 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。题目本身也不太难,使用位的异或运算和 位与操作即可。代码如下:class Solution: def Add(self, num1, num2): while num2: sum = num1 ^

2016-07-13 22:33:57 3358 1

原创 整数中1出现的次数

求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?1~13中包含1的数字有1、10、11、12、13因此共出现6次。众所周知,对于一个整数而言,它是由个位、十位、百位、… 组成的。在这里我们用m代表1、10、 100、1000等等,用于之后各个位的表示。下面来看一下具体的一个整数的例子。比如这个整数是2561482,即求从1到2561482中,1出现的次数。我们先把整数

2016-07-12 14:56:13 995

原创 Python实现朴素贝叶斯

通过Python实现李航的朴素贝叶斯一章的例题。from numpy import *def loadDataSet(): postingList = [[1, 'S'], [1, 'M'], [1, 'M'], [1, 'S'], [1,

2016-06-24 17:35:03 636

原创 约瑟夫环 Python&Swift实现

Josephus问题的通解公式是 f(n,k)=((f(n-1,k)+k-1) mod n)+1,f(1,k)=1 其中f(n,k)表示n个人玩约瑟夫杀人游戏,每次报号k倍数的人被干掉的规则下最终剩下的那个人原本的标号。假设有10个人,即n = 10,0 1 2 3 4 5 6 7 8 9 选择 m = 3那么第一个人出列后的序列为:0 1 3 4 5 6 7 8 9 ,即:3 4 5 6

2016-06-23 22:25:57 1865

原创 Python实现决策树

训练数据集来自李航的《统计学习方法》特征选择一章,决策树的生成采用ID3或者C4.5算法,决策树剪枝暂未实现。决策树的实现还是比较容易的,主要思路如下: 1. 先计算整体类别的熵 2. 计算每个特征将训练数据集分割成的每个子集的熵,并将这个熵乘以每个子集相对于这个训练集的频率,最后将这些乘积累加,就会得到一个个特征对应的信息增益。 3. 选择信息增益最大的作为最优特征分割训练数据集 4. 递

2016-06-18 17:34:48 1883

原创 Python自然语言处理第二章部分习题

第二章练习使用语料库模块使用语料库模块处理austen-persuasion.txt。这本书中有多少词标识符?多少词类型?import nltkemma = nltk.corpus.gutenberg.words('austen-emma.txt')len(emma) #求取文本中的词标识符len(set(emma)) #求取文本中的词类型使用布朗语料库阅读器nltk.corpu

2016-06-15 16:46:08 1778

原创 从一段NLP程序看list和generator的用法

之前在学习Python自然语言处理的时候,碰到了有关下位词的一道习题: What percentage of noun synsets have no hyponyms? You can get all noun synsets using wn.all_synsets(‘n’).当时我写的代码是这样的:import nltkfrom nltk.corpus import wordnet a

2016-06-15 10:23:38 481

原创 有关Python中的division问题

笔者在学习Natural Language Processing with PythonChapter2的过程中,在运行如下代码的时候生成结果和书中示例不同:import nltkdef content_fraction(text): stopwords = nltk.corpus.stopwords.words('english') content = [w for w in te

2016-06-13 16:07:19 1215

原创 mac下得matplotlib配置

首先需要安装pip,sudo easy_install pipnumpy安装pip install -U numpy 有没有-U视情况而定matplotlib安装pip install matplotlib,如果没有权限,需要在前面加上sudo。有时候会提示一个-H有关的东西,这时候可以尝试sudo -H pip install matplotlib安装。安装完成后进入python,键入import

2016-06-07 17:19:35 2203

提示
确定要删除当前文章?
取消 删除