
算法
djskl
这个作者很懒,什么都没留下…
展开
-
浅谈bitmap算法
本文来自:http://weihe6666.iteye.com/blog/1184554 久闻《编程珠玑》一书中提出的bitmap算法之大名,只是没有深入的去研究,今天下午有兴致研究一番,才知道其中的玄机奥秘,不亚于KMP算法之巧妙,下面就由浅入深的谈谈bitmap算法。 一、bitmap算法思想 32位机器上,一个整形,比如int a; 在内存中占32bit位,可以用对转载 2013-10-03 22:49:16 · 604 阅读 · 0 评论 -
异或运算应用
基本公式:a⊕b = (¬a ∧ b) ∨ (a ∧¬b),运算时,相同值异或为0,不同值异或为1 元算法则: a⊕b = b⊕a (a⊕b)⊕c = a⊕(b⊕c) c=a⊕b --> a=c⊕b / b=c⊕a 例1:在一个整数数组中,除一个数出现1次外,其他的都出现了2次,在O(n)时间复杂内找到这个数,不能使用辅助空间。 解析:根据相同为0的性质,通过两两异或可以把所有值相原创 2015-06-30 22:04:39 · 1086 阅读 · 0 评论 -
BitMap的java实现
/** * 本文所实现的bitmap是将整型数字存储到整型数组中,主要是为了减少原始数字集合存储所占的空间 * @author djskl * */ public class BitMap { private int[] data;//BitMap private final int BITS=32;//数组中的存储单元为32位 private final int SHIFT=5;/原创 2013-10-03 22:58:11 · 1013 阅读 · 0 评论 -
移位运算-《剑指offer》2.4.3位运算读后整理
1、补码原码概念 计算机中的数都以补码的形式表示 补码变原码,原码变补码都是取反加1 2、 移位操作 无符号数:左移右移都补0 有符号数: 正数:左移右移都补0,但是符号位可以被覆盖,但1移动到最高位的时候会变成负数,如果在此基础上再移一位会变成0 负数:左移补0右移补1,不断右移会变成-1,-1右移永远是-1,因为-1的二进制补码是111--32个1--111; 3、进行位移操作原创 2013-03-14 23:30:33 · 487 阅读 · 0 评论 -
浅谈编程解决实际问题的常见思想
原文地址:http://blog.jobbole.com/48386/ 现实生活中有很多问题,人为不好解决,但利用计算机速度快,不出错的特性,可以很方便的解决这些问题,下面简单说说我在程序设计中解决实际问题的一些常见思想,高手可以忽略掉,我也是无聊了随便写写而已。 1.枚举最优解时的情况 有很多问题初看很棘手,但经过仔细的分析,可以得出一些显然的结论。 比如下面这个问题转载 2013-09-22 23:16:44 · 1055 阅读 · 0 评论 -
笔试题整理
爱奇艺 1、int a=5;int b=7;int rst=(a++)+(b++);rst=? 解析:x++操作符相当于一个函数调用,x是函数参数,++在x之后返回值是x,++在x之前返回的的x+1。所以rst=12; 2、以中文为主的文章,以下哪种编码方式使存储空间最小? A、GBK B、UTF-8 C、Unicode D、UCS-4 解析:Unicode为确定了所有字符(原创 2013-09-29 19:58:05 · 624 阅读 · 0 评论 -
epoll_转自“知乎”
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是服务器还没有转载 2013-10-02 12:21:22 · 542 阅读 · 0 评论 -
排序算法的比较与选择
1、插入排序:简单,时间复杂度O(n2),每次保证前n个元素有序然后将n+1个元素插入到前面的序列中。 可以证明:通过交换相邻元素进行排序的任何算法平均都需要O(n2)时间。所以提高插入排序的一种思路就是通过比较不相邻的元素进行排序,这就是希尔排序。 2、希尔排序:通过比较不相邻的元素来工作,各趟比较所使用的距离逐渐减小,称为增量序列。 不同增量序列对算法性能影响很大原创 2013-02-19 23:33:52 · 539 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
转自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希转载 2013-09-29 14:32:49 · 453 阅读 · 0 评论 -
字典树入门及实现_JAVA
Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。 典型应用是用于统计和排序大量的字符串(但不仅限于字符串), 所以经常被搜索引擎系统用于文本词频统计。 它的优点是: 利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。 比如说我们想储存3个单词,sky、skyline、skymoon。如果只是单纯的按照以前的字符数组转载 2013-10-02 16:47:06 · 782 阅读 · 0 评论 -
KMP算法
KMP算法曾被我戏称为看毛片算法,当时笑喷......大三那个时候硬着头皮把算法导论的kmp算法啃完,弄懂了kmp算法 的原理,甚至还写出了代码,这几天再次温习的时候,发现忘得比较彻底。我总结,学算法不能只对着书本学理论,而应该 用自己的理解去看清算法的本质,最好用文字把你的理解记录下来,这样才能做到活学活用,而且不容易忘。写这篇博客就是想把自己这几天的思路记下来。 一转载 2013-10-29 11:22:40 · 673 阅读 · 0 评论 -
ROC曲线
一、概述 纵坐标为TPR(True Positive Rate),横坐标为FPR(False Positive Rate)。TPR反映的分类为“正”的样本在所有"正"样本中所占的比例,FPR反映的是被错误分类为"正"的样本在所有"负"样本中的所占的比例。TPR越大,FPR越小,越好。 二、用途 2.1 参数选择 计算不同参数对应的TPR和FPR,然后以FPR为主排序,并做折线图,越靠近左上原创 2014-02-09 23:08:56 · 1442 阅读 · 0 评论 -
分布式网络计算八大谬论
早在1994年 SUN 的小伙 Peter Deutsch就提出了分布式计算的七大谬论,后来被 James Gosling等完善: Fallacies of Distributed Computing 1. 网络是可靠的 2. 网络延时为零 3. 带宽是无限的 4. 网络是安全的 5. 网络拓扑不会改变 6. 肯定至少有一个管理员(在值班) 7. 传输开销为零 8. 网络是同转载 2013-02-18 21:10:58 · 1093 阅读 · 0 评论 -
总结TreeSet排序问题
转自:http://blog.youkuaiyun.com/this_super/article/details/6185390 java中接口Set有众多实现类,而HashSet和TreeSet是最常用的两个,这里总结TreeSet实现排序的2种方式: 1.通过TreeSet(ComparatorE> comparator) 构造方法指定TreeSet的比较器进行排序; 2.使用TreeS转载 2013-10-08 16:18:12 · 612 阅读 · 0 评论 -
最长回文子串
转自:http://my.oschina.net/pathenon/blog/63575 问题描述: 给定一个字符串S=A1A2...An,要求找出其最长回文子串(Longest Palindromic Substring)。所谓回文子串就是S的某个子串Ai...Aj为回文。例如,对字符串S=abcdcbeba,它的回文子串有:bcdcb,cdc,beb,满足题目要求的最长回文转载 2013-10-08 12:14:35 · 515 阅读 · 0 评论 -
BloomFilter
转自:http://www.cnblogs.com/heaad/archive/2011/01/02/1924195.html Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例 为了说明Bloom Filter存在的重要意义,举转载 2013-10-08 22:19:17 · 504 阅读 · 0 评论 -
异常点监测:Anomaly Detection
1、属性值:首先要看取值是否在正常范围内,如人的身高,如果取值为100m那肯定是异常;同时也要看数据背景,在NBA中1.3m的身高也很有可能是异常值。 2、相关性:以人的年龄和体重为例,3岁和150斤都是正常值,但若这两个值出现在一个人身上那肯定也是异常值。以车的速度为例10KM/h和120KM/h都是正常值,如果这两个是相邻两秒的速度值就不正常了。 3、基于模型的判断方法:异常值的模型拟合度原创 2013-02-21 16:20:48 · 500 阅读 · 0 评论 -
输出n对括号的所有有效排列组合
问题: 比如三对括号,其有效的排列组合方式总共原创 2014-07-30 18:26:55 · 4214 阅读 · 0 评论