自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CFZero的专栏

Come From Zero,从零开始,从点滴做起。

  • 博客(86)
  • 收藏
  • 关注

原创 word2vec中数学原理详解以及原理思考

很久没有写博客了,也没有写过相关总结。最近,工作中又开始用到了word2vector,正好就做个相关总结。这方面相关的博客有很多,我看过的讲的最清楚的就是@peghoty的博客。要理解wordvector的原理,有些知识还是需要提前了解一下。预备知识:http://blog.csdn.net/itplus/article/details/37969635,背景知识:

2017-06-04 19:49:02 13355

转载 阶乘算法全集,阶乘末尾非零位,阶末尾零的个数

/阶乘各算法的 C++ 类实现#include iostream>#include cstring>#include iomanip> #include cmath> using namespace std; class Factorial {    static const int MAXN = 5001; // 最大阶乘数,实际用不到这么大   

2015-10-27 21:02:46 1279

原创 海量数据算法题

海量数据面试题整理  1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?  方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。  s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文

2015-10-18 15:07:24 588

原创 求解1到n之间素数的个数

常用方法:package test;import java.util.Scanner;public class PrimeCount { //判断一个数是否为素数的时间复杂度为O(sqrt(n)) boolean isPrime(int num){ if(num < 2) return false; int i = 2; for(;i*i<=num;i++){

2015-10-18 11:17:35 7321 1

原创 作弊用户的检测算法

问题描述:在网上,存在相互提问并回答的作弊刷分现象,为了杜绝这种现象,我们需要对提问题的用户和回答问题用户的行为记录进行检测,作弊行为有两个明显的特征:1、两个用户A,B,当A提出问题时,B进行回答,而且当B提出问题时,A进行回答;则,我们认为A和B均为作弊用户;2、如果作弊用户A和作弊用户B,同时对C提出的问题进行回答,则我们认为C为作弊用户;一个问题可能有多个用户进行回

2015-10-17 19:47:45 2729 2

原创 图的深度搜索

基于邻接矩阵的无向图深度搜索。

2015-09-28 23:05:49 451

原创 针对进程快照的死锁检测算法

输入格式:进程数量进程id 持有的锁id等待的锁id进程id 持有的锁id等待的锁id其中,每个进程可持有0个或多个锁,等待0个或1个锁;检测进程情况是否存在死锁,若存在则输出死锁个数。输入样例如下:7123 1001,1002 1003127 1100128 1010  129  124 1007 1008125

2015-09-21 14:02:24 957

转载 https原理:证书传递、验证和数据加密、解密过程解析

写的太好了,就是我一直想找的内容,看了这个对https立马明白多了http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。HTTPS简介HTTPS其实是有两部分组成:HTTP + S

2015-09-08 09:54:15 514

原创 同一进程下的线程可以共享的内容

线程共享的内容包括:1.进程代码段2.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)3.进程打开的文件描述符、4.信号的处理器、5.进程的当前目录和6.进程用户ID与进程组ID线程独有的内容包括:1.线程ID2.寄存器组的值3.线程的堆栈4.错误返回码5.线程的信号屏蔽

2015-09-08 09:45:14 3495

原创 Lock的简单使用

java中Lock的简单使用public class Buffer { private int maxsize =10; private List bufflist; private Lock lock = new ReentrantLock(); private Condition con1 = lock.newCondition(); public Buffer(){ bu

2015-09-07 22:20:04 456

原创 关于synchronized关键字的一点补充

下面是上一篇文章中用到的一部分代码:public class Buffer { private int maxsize =10; private List bufflist;// private final Object ob =new Object(); public Buffer(){ bufflist = new ArrayList<>(); System.out

2015-09-07 21:46:44 363

原创 生产者-消费者模型的java实现

生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据项的情形,其解决方法是让生产者此时进行休眠,等待消费者从缓冲区中取走了一个或者多个数据后再去唤醒它。

2015-09-07 21:19:08 358

转载 java synchronized详解

记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。     一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。     二、然而,当一个线程访问ob

2015-09-07 20:58:22 325

原创 两个有序数组,判断一个给定的数p在合并后的位置

有两个有序数组,给定的一个数p(p是两个数组中的任意一个数,也可能同时存在于两个数组之中),判断这个数p在两个数组合并后的大数组的位置。要求:空间复杂度为O(1),即不能真正合并两个数组以下代码实现,其时间复杂度为O(log(m)+log(n)):#include #includeusing namespace std;int getkth(vector arrays,

2015-09-07 17:32:39 367

转载 TCP的阻塞机制

TCP 的拥塞机制TCP的拥塞机制包括四个慢启动拥塞规避快速启动快速恢复下面一个一个的具体说明:(一下为我在网络上摘录的,关于TCP阻塞机制的文章。)为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congesti

2015-09-07 17:25:15 3229

转载 两个有序数组中的第K个元素

给定两个有序的数组,长度分别为m和n,求这两个数组中的第K个元素。  问题分析: 1. 把 A 平均分为前后两个部分,前部分有 x 个元素,后部分有 n-x 个元素(由于 A 是有序的,所以后一部分的所有元素都大于前一部分)。A[x] 为 A 的后一部分中的第一个元素。 2. 同理把 B 也平均分成前后两个部分,前部分有 y 个元素,后部分有

2015-09-04 22:00:54 458

原创 贝格尔编排法之C++版

轮转的步骤与之前的java代码不同,相对之前的更高效一些。// #include #includeusing namespace std;void display(vector arrays,int len){ for(int i = 0;i<len/2;i++) cout<<arrays[i]<<"....."<<arrays[len-i-1]<<endl;}int r

2015-09-04 18:16:18 1298

原创 java中的volatile关键字

关键字volatile是虚拟机提供的最轻量级的同步机制,但一般遇到同步问题时大部分还是使用synchronized来解决;当一个变量被声明为volatile后,它将具备两个特性:第一是保证此变量对所有线程可见性,这里的“可见性”是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。第二是禁止指令重排序优化。      首先说一下对所有线程的可见性,关于volati

2015-08-31 22:43:23 314

转载 Java 多线程 并发编程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间

2015-08-31 21:53:12 451

转载 Java中的值传递和引用传递

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?     答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。Java参数,不管

2015-08-30 16:52:03 307

转载 C语言内存分布(BSS段、数据段、代码段、堆与栈)

BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text s

2015-08-29 12:23:34 392

转载 C变量和函数的存储类型

C变量和函数的存储类型在上一篇《C程序内存管理》的文章中(http://www.linuxidc.com/Linux/2015-01/111157.htm),已经知道了C语言编译后的可执行文件的存储结构以及运行时的内存布局,本文则记录C语言中变量和函数的存储类型,以及在内存中的一些行为。C语言中变量的声明/定义格式如下:存储类型    类型修饰符    数据类型    变量

2015-08-29 12:20:30 561

转载 分析linux系统下几种消息传递通信方式

(1)信号:通知某时间发生了,如SIGPIPE,这个是在socket编程的时候,send数据给对方的时候,对方非正常关闭时,操作系统会告诉进程这个信号,即对方已经异常退出。(2)信号量:用于进程间互斥同步,比如一个进程要对一个共享区域进行写操作,这时不想别的进程对其进行写操作,那么就获取信号量,写完再释放,别的进程就可以读/写操作了。(3)管道:用于有亲缘关系的进程通信,管道一边用于读,另一边

2015-08-29 11:47:28 1623

转载 深入剖析Java中的装箱和拆箱

自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。  以下是本文的目录大纲:  一.什么是装箱?什么是拆箱?  二.装箱和拆箱是如何实现的  三.面试中相关的问题  若有不正之处,请谅解和批评指正,不胜感激。  请尊

2015-08-27 18:12:43 300

转载 javascript深入理解js闭包

一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。Js代码  var n=999;  function f1(){    alert(n);  }  f1(); // 999另一

2015-08-21 20:22:30 299

转载 STL标准库中的算法函数

STL标准库中的算法函数非修改性序列操作(12个)类型函数名说明循环for_each()对序列中的每个元素执行某操作。查找find()在序列中找出某个值的第一次出现的位置。find_if()在序列中找出符合某谓词的第一个元素

2015-08-21 12:05:54 364

转载 三十分钟掌握STL

三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:[email protected]概述STL的一个重要特点是数据结构和算法的分离。尽

2015-08-21 11:59:41 249

转载 C语言堆栈入门——堆和栈的区别

来看一个网上很流行的经典例子:main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 = "123456"; 123456\0在常量区,p3在栈上。 static int c =0; 全局(静态)初始化区 

2015-08-08 20:23:25 406

转载 指针函数与函数指针的区别

一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表)      int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变

2015-08-02 11:04:38 291

转载 g++编译命令使用以及参数详解

gcc & g++现在是gnu中最主要和最流行的c & c++编译器 。g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c。这时候命令换做gcc即可。其实是无关紧要的。其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接。下面以Test.cpp为例:命令: g++ Test.cpp功能:生成默认为a.exe的文件,这个过程包含了编译

2015-08-01 16:39:23 6681

转载 gcc 编译器常用的命令行参数一览

这些常用的 gcc/g++ 命令行参数,你都知道么?1. gcc -E source_file.c-E,只执行到预编译。直接输出预编译结果。2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码。3. gcc -c source_file.c-c,只执行到编译,输出目标文件。4. gcc (-E/S/c/) s

2015-08-01 15:47:23 443

原创 贝格尔编排法代码

自己编写的适用于单循环比赛的贝格尔编排法代码,若有可改进之处,望高手指正。import java.util.Scanner;public class BergerTest {public static void main(String[] args) {// TODO Auto-generated method stubBergerTest ber = new BergerTest();Syste

2015-08-01 14:24:06 2814

转载 word2vector使用

Google的Word2Vector官网:https://code.google.com/p/word2vec/下载下来的Demo源码文件共有如下几个:word2vec – Revision 41: /trunk…LICENSE //Apache LICENSEREADME.txt //工具使用说明compute-accuracy.cdemo-analogy.sh  /

2015-07-31 21:58:36 5020

原创 linux 命令

查看文件大小 du -sh text8.zip

2015-07-31 21:43:14 428

转载 ubuntu 环境下编译 hadoop 2.6.0的简单方法

由于服务器一般都64位系统,hadoop网站的release版本32位native库不能运行,所以需要自己在编译一下。以下是我采用的一个编译的过程,比较简单,不用下载各种版本及环境配置,通过命令就能自动完成了。系统环境为ubuntuserver 64位版。1、安装JDK,我这里使用的是OenJDKsudo apt-get install default-jdkjava -version

2015-07-31 10:37:57 342

转载 矩阵范数(martix norm) --维基百科

矩阵范数(martix norm)是数学上向量范数对矩阵的一个自然推广。目录   [隐藏] 1 矩阵范数的特性2 诱导范数3 矩阵元范数3.1 弗罗贝尼乌斯范数3.2 极大范数3.3 Schatten 范数4 一致范数5 范数的等价5.1 范数等价的例子6 参考资料[编辑]矩阵范数的特性以下 K

2015-06-12 14:48:40 15641

转载 sizeof 求类的大小

sizeof求类的大小和求结构体的大小,有一定的相似性,但又不完全相同,因为类存在这继承和派生、存在着虚函数。1、空类大小对于一个空类,使用sizeof求得其大小为1。2、简单类如下定义一个类,[cpp] view plaincopyprint?class A  {  public:      in

2015-06-02 11:04:39 433

转载 VMWare虚拟机提示:锁定文件失败,打不开磁盘的解决办法

(1)今天做实验电脑垃圾用到虚拟机Ubuntu 卡出了翔, 无奈只能强制关机,重开机但是开机之后就出错了:找了好久 ,这是因为虚拟机在运行的时候,会锁定文件,防止被修改,而如果突然系统崩溃了,虚拟机就来不急把已经锁定的文件解锁,所以你在启动的时候,就会提示无法锁定文件。解决方法如下:在你的虚拟机的安装目录下,搜索  【.lck】

2015-06-01 20:23:37 659

转载 几种常见模式识别算法整理和总结

这学期选了门模式识别的课。发现最常见的一种情况就是,书上写的老师ppt上写的都看不懂,然后绕了一大圈去自己查资料理解,回头看看发现,Ah-ha,原来本质的原理那么简单,自己一开始只不过被那些看似formidable的细节吓到了。所以在这里把自己所学的一些点记录下来,供备忘,也供参考。  1. K-Nearest NeighborK-NN可以说是一种最直接的用来分类未

2015-04-17 15:31:05 974

转载 八大排序算法

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。        当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。   快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序

2015-04-17 15:24:54 385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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