
DataStruct、Algorithmic
文章平均质量分 66
clay小哈_
这个作者很懒,什么都没留下…
展开
-
从头到尾彻底理解KMP算法
作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。 然近期因在北京开了个算转载 2014-12-25 07:53:12 · 590 阅读 · 0 评论 -
有关进程,线程通信的几个详细问题
先来说说线程吧,线程的基本概念,教材上是这样定义的:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。1、我们知道一个线程可以创建和撤消另一个线程,同一个进程中可以存在多个线程,多个线程之间可以并发执行。这样有什么好处呢?以下几点是很明确的: 易于原创 2017-04-23 10:55:03 · 776 阅读 · 1 评论 -
Java代码性能优化
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个原创 2017-04-23 10:45:06 · 611 阅读 · 6 评论 -
Python开发技能表
Python开发工程师技能表...转载 2017-04-16 23:09:59 · 1657 阅读 · 0 评论 -
mybatis 实践练习
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以原创 2017-03-27 14:38:33 · 1178 阅读 · 0 评论 -
python爬虫和http请求协议
我经常会看到有人在知乎上提问如何入门 Python 爬虫?如何学习Python爬虫[入门篇]?等这一些问题,我今天写这篇文章的目的就是来告诉大家,我为什么要学爬虫,爬虫的本质是什么。原创 2017-02-21 23:09:35 · 1218 阅读 · 0 评论 -
Best questions about python at stackoverflow in 2016
1. 使用pythonic的方式避免“if x : return x”的语句。Question: I have a method that calls 4 other methods in sequence to check for specific conditions, and returns immediately (not checking the following ones)翻译 2017-02-26 10:11:28 · 717 阅读 · 0 评论 -
lambda表达式的用法
lambda Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错;lam = lambda x:x * xlam(2) # return 4lambda和map(),filter(),reduce()的关联使用方法 需要两个参数,第一个是一个处理函数,第二个是一个序列(list,tuple,dict)map() 将序列中的元素通过处理原创 2017-03-08 23:16:55 · 661 阅读 · 0 评论 -
如何顺时针打印一个二维矩阵
昨天去网易公司面试,面试官给了一道题,以前好像见过类似的题目,和面试官讨论了半天,思路是正确的,可是最后还是没能够写出满意的代码,今天没有其他事,就来梳理一下吧! 题目是这样的:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。原创 2015-09-13 10:36:35 · 1467 阅读 · 0 评论 -
用正则表达式匹配IPV4地址
写一个正则表达式匹配IPV4地址说容易也容易,说难也难,取决于需要的准确度。简单起见,这里只考虑点分十进制的IPV4地址。 最简单的方式是把IPV4地址看做四段十进制数字串,由三个点号隔开,可以采用如下写法:^\d+\.\d+\.\d+\.\d+$就其本身而言没有问题,但会错误地匹配"448.90210.0.65535"这样的字符串,而一个恰当的IPV4表示法中每个域中的值不应大于255。但写一个匹配0到255的整数的正则表达式并不容易,因为正则表达式不理解算术,而是单纯基于文本。原创 2015-09-11 23:32:46 · 8493 阅读 · 1 评论 -
哈希表的工作原理
哈希表(Hash Table)的应用近两年才在NOI中出现,作为一种高效的数据结构,它正在竞赛中发挥着越来越重要的作用。 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。 哈希表又叫做散列表,分为“开散列” 和“闭散列”。考虑到竞赛时多数人通常避免使用动态存储结构,本文中的“哈希表”仅指“闭散列”,关于其他方面读者可参阅其他转载 2015-09-11 11:13:12 · 727 阅读 · 0 评论 -
面向对象编程和面向过程的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。原创 2015-04-10 10:36:28 · 6262 阅读 · 1 评论 -
排序算法的稳定性
首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,原创 2015-04-17 22:14:14 · 572 阅读 · 0 评论 -
复习一下栈的基本操作
题目描述对输入整数序列1 2 3 ..执行一组栈操作,输出操作的出栈序列。输入每行是一个测试用例,表示一个操作序列。操作序列由P和Q两个符号组成,P表示入栈,Q表示出栈。每个操作序列长度不超过1000。输出对每个操作序列,输出出栈序列,若操作序列有错误,如栈空时执行出栈操作,输出error。样例输入PQPPQQPPPQ原创 2014-11-15 11:02:37 · 2582 阅读 · 0 评论 -
VS使用过程中的常用技巧
调试是软件开发周期中的一个很重要的部分,有时很有挑战性,有时候则让程序员迷惑,有时候让程序员发疯,但是。可以肯定的是,对于任何不是太那个微不足道的程序来说,调试是不可避免的。近年来,调试工具的发展已经使得很多调试任务简单省时了。 本文总结了十个调试技巧,当你使用VS的时候可以节省你很多时间。1.悬停鼠标查看表达式调试有时候很有挑战性,当你步入一个函数想看看哪原创 2014-11-02 16:26:43 · 604 阅读 · 0 评论 -
常见的十大机器学习算法
机器学习算法的广义分类大概有三种:监督式学习、无监督学习、强化学习。 监督学习由一个目标变量或结果变量(或因变量)组成。这些变量由已知的一系列预示变量(自变量)预测而来。利用这一系列变量,我们生成一个将输入值映射到期望输出值的函数。这个训练过程会一直持续,直到模型在训练数据上获得期望的精确度。监督式学习的例子有:回归、决策树、随机森林、K – 近邻算法、逻辑回归等。 无监督式学习没有任何目标变量原创 2017-07-01 12:24:23 · 15566 阅读 · 0 评论