- 博客(67)
- 资源 (3)
- 收藏
- 关注
转载 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。
2016-08-19 15:53:03 557
转载 浅谈算法和数据结构: 九 平衡查找树之红黑树
出处:http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据结构,即红黑
2016-04-02 13:50:57 504
转载 设计模式概论
设计模式概论1. 设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。
2016-03-02 22:10:41 751
原创 Boyer-Moore Majority Vote Algorithm的更一般性问题
1) 问题描述基本问题:对于一个给定数组A[0:n-1],找出出现次数大于⌊n/2⌋\lfloor n/2\rfloor 的元素,称为Majority element. 一般问题:对于一个给定数组A[0:n-1],找出出现次数大于⌊n/k⌋(k≥2)\lfloor n/k\rfloor( k\ge2)的所有元素.LeetCode问题链接: Majority Element: https://le
2016-02-25 11:32:07 1997
转载 Boyer-Moore算法
出处:http://blog.csdn.net/appleprince88/article/details/11881323一.简述 在当前用于查找子字符串的算法中,BM(Boyer-Moore)算法是当前有效且应用比较广的一中算法,各种文本编辑器的“查找”功能(Ctrl+F),大多采用Boyer-Moore算法。比我们在学习的KMP算法快3~5倍。
2016-02-24 19:41:55 561
转载 深入理解Java 8 Lambda
作者:Lucida微博:@peng_gong豆瓣:@figure9原文链接:http://lucida.me/blog/java-8-lambdas-insideout-language-features/关于深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)深入理解Java 8 Lambda(类库篇——S
2016-02-23 14:51:45 2355
转载 Segment Tree
出处:http://blog.csdn.net/metalseed/article/details/8039326一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)!性质:父亲的区间是[a,b],(c
2016-02-21 21:56:05 1536
转载 从头到尾彻底理解KMP(2014年8月22日版)
出处:July: 从头到尾彻底理解KMP(2014年8月22日版)从头到尾彻底理解KMP作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。后收录于新书《编程之法:面试和算法心得》第4.4节中。1. 引言 本KMP
2016-02-19 20:32:19 483
转载 Trie树:应用于统计和排序
出处:Trie树:应用于统计和排序 1. 什么是trie树 1.Trie树 (特例结构树) Trie树,又称单词查找树、字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较
2016-02-18 10:46:09 447
转载 IP MTU and TCP MSS Missmatch – an evil for network performance
When we conduct a technical workshop, a common query from the participants relates to the Maximum Transmission Unit (MTU) size manipulation on a router interface and its relationship with the TCP Maxi
2016-01-20 14:59:16 974
原创 深入理解Java虚拟机 JVM基本框架
JVM基本框架首先是JVM的整图结构图: 围绕JVM内存空间有三个重要的组成部分(绿色框):类加载器子系统(Class类文件内部结构怎样?JVM何时加载类?如何加载类?)字节码执行子引擎 (程序运行时帧栈结构?方法调用时如何支持多态?执行引擎如何工作?)垃圾回收器GC(如何确定对象可回收?哪些垃圾回收方法?何时进行垃圾回收?)另外的内容还包括:Javac编译器(.java源程序如何如何编
2016-01-12 19:02:19 2626 1
原创 深入理解Java虚拟机 垃圾回收器GC
哪些对象需要回收的对象?在进行垃圾回收前,需要知道哪些对象已经没用可以回收了。在objc中,使用ARC自动引用计数,当一个对象ARC为降为0时,认为该对象不在使用。引用技术算法容易出现两个对象循环引用,导致无法正确回收的问题。在Java中,使用可达性分析技术实现。算法的基本思路是:通过一系列成为”GC Roots”的对象作为起始点,从这些节点向下搜索,搜索所走过的路称为引用链。如果一个对象到GC R
2016-01-12 18:59:05 929
原创 深入理解Java虚拟机 字节码执行引擎
运行时栈帧结构在JVM基本框架中已经提到过栈帧Frame结构。局部变量表局部变量表以Slot为基本单位,int,float,reference,boolean, byte都占1 Slot;long和double数据被切割成连续2 Slots。局部变量中Slot可重用,当方法体内定义的变量超出其作用域时,会被重用。操作数栈JVM对栈帧做了优化处理,令下面的栈帧的操作数栈和上面的栈帧局部变量表部
2016-01-11 17:06:35 972
原创 深入理解Java虚拟机 类加载子系统2
与C/C++那些需要在编译器期进行连接工作的语言不同,Java类的加载、连接和初始化都是在程序运行时完成的,只有在类被需要的时候才进行动态加载。1)JVM何时加载类? 有且只有以下5种情况:创建新对象(new)、设置/读取static字段(putstatic/getstatic)或调用静态方法(invokestatic)这四条指令时,如果该类没有初始化,则初始化。使用java.lang.ref
2016-01-11 13:03:18 1700
原创 深入理解Java虚拟机 类加载子系统1
Class文件结构在加类加载子系统之前,我们需要首先了解Class文件的内部结构。 Class文件是一种平台无关的二进制字节码格式(ByteCode),该字节码能够被JVM识别并解释执行或被JVM进一步编译成本地机器码(Native Code)后执行。Class文件以8位字节为单位,排列紧凑中间没有任何分隔符。 Class文件结构ClassFile { //魔数 固定位0xcafebab
2016-01-10 20:51:35 1009
原创 Java Integer和String内存存储
先看代码:void foo(){ Integer i1 = 2; Integer i2 = 2; Integer i3 = new Integer(2); System.out.println("i1 = i2? " + (i1 == i2)); //true System.out.println("i1 = i3? " + (i1 == i3)); /
2016-01-10 12:51:05 5899 5
原创 leetcode -- Fraction to Recurring Decimal
Given two integers representing the numerator and denominator of a fraction, return the fraction in string format.If the fractional part is repeating, enclose the repeating part in parentheses.
2016-01-05 11:15:22 599
原创 leetcode -- Compare Version Numbers
Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 version2 return -1, otherwise return 0.You may assume that the version strings are non-empty and co
2016-01-04 13:55:05 465
原创 leetcode -- Maximum Gap
Given an unsorted array, find the maximum difference between the successive elements in its sorted form.Try to solve it in linear time/space.Return 0 if the array contains less than 2 elements
2016-01-04 11:01:08 355
原创 iOS copy, mutableCopy, strong
iOS copy, mutableCopy, strongcopy & mutableCopy1、 非容器对象 - 对不可变对象复制,copy是指针复制(浅拷贝)和mutableCopy就是对象复制(深拷贝)。 - 对可变对象复制,copy和mutableCopy都是深拷贝,但是copy返回的对象是不可变的。 NSMutableString *str = [NSMutableString
2015-12-16 14:43:42 455
转载 Spring MVC之@RequestBody, @ResponseBody 详解
引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;简介:@RequestBody作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的
2015-10-29 11:58:30 379
翻译 数据源和连接池DataSource Objects and Connection Pools
https://docs.oracle.com/javaee/6/tutorial/doc/bncjj.htmlDataSource Objects and Connection PoolsTo store, organize, and retrieve data, most applications use a relational database. Java EE 6 c
2015-10-23 20:07:24 722
转载 ARC指南1 - strong和weak指针
参考文献: iOS ARC 完全指南提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量"一、简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切注意:ARC 是编译器
2015-09-13 10:28:43 411
转载 虚函数和纯虚函数的区别
出处:http://blog.csdn.net/hackbuteer1/article/details/7558868首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数
2015-08-03 16:57:39 583
原创 深度探索C++对象模型-构造函数语义学
default constructor构建default constructors在编译器需要的时候产生,区别于程序设计者的需要。以下程序进行说明:class A(public: int v;);void test(){ A a; //a.v没有初始化,需要设计者自行设计default constructor,编译器并不会合成 if(a.v) //...}编
2015-04-19 17:29:25 1385
转载 c++虚继承对象的内存布局
出处:http://blog.csdn.net/bluedog/article/details/4711169c++虚继承对象的内存布局 --VC7.1特别版网上关于c++对象布局的文章挺多,而且《深度探索c++对象模型》(Inside The C++ Object Model 侯捷 译)一书中也很详细地介绍。如果你一点都不了解C++对象的布局,我推荐你
2015-04-19 16:12:24 493
转载 C++ 对象的内存布局(上)
出处:http://blog.csdn.net/haoel/article/details/3081328C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel 点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的
2015-04-19 15:57:46 327
转载 字符串子序列数目
出处:http://blog.csdn.net/sdjzping/article/details/132983431、http://acm.fzu.edu.cn/problem.php?pid=21292、题目大意:给定一个字符串,求出该字符串有多少个不同的子序列定义dp[k]为前k个字符中子序列的个数那么dp[k]来自于两种状态,dp[k]=2*d
2015-04-18 10:36:54 3973
转载 动态规划-最长回文子序列
出处:http://www.acmerblog.com/longest-palindromic-subsequence-5721.html给一个字符串,找出它的最长的回文子序列的长度。例如,如果给定的序列是“BBABCBCAB”,则输出应该是7,“BABCBAB”是在它的最长回文子序列。 “BBBBB”和“BBCBB”也都是该字符串的回文子序列,但不是最长的。注意和最长回文子串的区别(参考
2015-04-18 10:30:22 1070
转载 第六章堆排序之“用最小堆将k个已排序链表合并为一个排序链表”(练习6.5-8)
出处:http://blog.csdn.net/MichealTX/article/details/7172910问题:请给出一个时间为O(nlgk),用来将k个已排序链表合并为一个排序链表的算法。此处的n为所有输入链表中元素的总数。(提示:用一个最小堆来做k路合并)编程思路:假设k个链表都是非降序排列的。(1)取k个元素建立最小堆,这k个元素分别是k个链表的第
2015-04-15 16:36:52 465
原创 leetcode -- Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [−2,1,−3,4,−1,2,1,−5,4], the contiguous subarray [4,−1,2,1]
2015-03-14 10:42:11 791
原创 leetcode -- Count and Say
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as
2015-03-05 22:14:45 386
转载 vfork挂掉的一个问题
转自:http://coolshell.cn/articles/12103.html#more-12103 作者:陈皓在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。我受邀后本来不想回答这个问题的,
2015-03-04 19:27:49 534
转载 How to pass QEMU command-line options through libvirt
An entire virtual machine configuration can be passed on QEMU's extensivecommand-line, including everything from PCI slots to CPU features to serialport settings. While defining a virtual machine
2014-12-26 15:17:51 1704
原创 leetcode -- Search for a Range
Q:Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm's runtime complexity must be in the order of O(log n).If the target is not foun
2014-12-19 09:29:45 681
原创 leetcode -- Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the
2014-12-11 20:21:34 454
cbir 基于内容的图像检索
2015-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人