上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页
摘要: SimHash算法 由于实验室和互联网基本没啥关系,也就从来没有关注过数据挖掘相关的东西。在实际工作中,第一次接触到匹配和聚类等工作,虽然用一些简单的匹配算法可以做小数据的聚类,但数据量达到一定的时候就束手无策了。 所以,趁着周末把这方面的东西看了看,做个笔记。来历 google的论文“detecting near-duplicates for web crawling”--------simhash。 Google采用这种算法来解决万亿级别的网页的去重任务。 基本思想 simhash算法的主要思想是降维,将高维的特征向量映射成一个低维的特征向量,通过两个向量的Hamming Di... 阅读全文
posted @ 2013-08-31 17:05 cococo点点 阅读(7081) 评论(5) 推荐(5) 编辑
摘要: 1 shell 的$! ,$?, $$,$@$n $1 the first parameter,$2 the second...$# The number of command-line parameters.$0 The name of current program.$? Last command or function's return value.$$ The program's PID.$! Last program's PID.$@ Save all the parameters.almost any shell book will tal... 阅读全文
posted @ 2013-08-29 15:51 cococo点点 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 重建二叉树题目 输入某二叉树的前序遍历和中序遍历,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含有重复的数字。 例如,前序遍历序列:{1,2,3,7,3,5,6,8},中序遍历序列:{4,7,2,1,5,3,8,6}答案 前序遍历: 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。 中序遍历: 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。#include using namespace std;struct... 阅读全文
posted @ 2013-08-25 10:11 cococo点点 阅读(5392) 评论(2) 推荐(1) 编辑
摘要: BF(Brute-Force)算法 蛮力搜索,比较简单的一种字符串匹配算法,在处理简单的数据时候就可以用这种算法,完全匹配,就是速度慢啊。基本思想 从目标串s 的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s的第二个字符起再重新和串t进行比较。 依此类推,直至串t 中的每个字符依次和串s的一个连续的字符序列相等,则称模式匹配成功,此时串t的第一个字符在串s 中的位置就是t 在s中的位置,否则模式匹配不成功。具体实现 int BFindex(String S, String T) { if (S.size() T[0]) return... 阅读全文
posted @ 2013-08-24 21:00 cococo点点 阅读(7074) 评论(0) 推荐(0) 编辑
摘要: Python笔记(一)1.变量类型 Python 有五个内置的简单类型:bool、int、long、float和complex。这些类型是不可变的,就是说整数对象一旦创建,其类型便不可更改。 type()函数可以用来判断一个变量的类型 定义变量时候,不需要明确表明这个变量是那种类型,系统会自动... 阅读全文
posted @ 2013-08-24 11:53 cococo点点 阅读(1695) 评论(0) 推荐(0) 编辑
摘要: trie树 最近接触到数据处理这一块,也就自然接触到了Trie树。它又称字典树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索系统用于文本词频统计,与比哈希表比查询效率要高。主要思想 它的主要思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销。 作为一种树型结构,利用不同的节点来保存某一信息的一位信息,该信息的的最大位数决定了tire数的深度。为了能表示所有可能的信息,它的每个节点的出度的最大值就是信息所包含的不同字符的最多个数。在每个单词的结尾我们需要保存这个单词的个数。 从树的根开始查询,按照深度优先来查询,直到... 阅读全文
posted @ 2013-08-18 11:35 cococo点点 阅读(481) 评论(0) 推荐(0) 编辑
摘要: AWK文本处理工具(Linux)PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所以要从新学习下,并应用在实际工作中。你可以用excel编辑还好,保存就卡死你!什么是AWK awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能,因为awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。AWK使用方法 awk语言最基本的功能是在文件或.. 阅读全文
posted @ 2013-08-10 17:23 cococo点点 阅读(3265) 评论(3) 推荐(0) 编辑
摘要: Linux 进程间通信 进程是一个独立的资源分配单位,不同进程之间的资源是相互独立的,没有关联,不能在一个进程中直接访问另一个进程中的资源。但是,进程不是孤立的,不同的进程之间需要信息的交换以及状态的传递,因此需要进程间数据传递、同步与异步的机制。分类统一主机间进程通信Unix进程间通信方式无名通道有名通道信号System V进程间通信方式信号量消息队列共享内存不同主机间进程通信RPCSocket消息队列IPC简单介绍下,所有相关的API函数:API函数用途msgget 创建一个新的消息队列 获取消息队列IDmsgsnd 向消息队列发送消息msgrcv从消息队列接受消息msgctl获... 阅读全文
posted @ 2013-07-25 11:30 cococo点点 阅读(1793) 评论(1) 推荐(2) 编辑
摘要: Nginx进程启动分析 worker子进程的执行循环的函数是ngx_worker_process_cycle (src/os/unix/ngx_process_cycle.c)。 其中,捕获事件、分发事件的函数是ngx_process_events_and_timers(cycle);static voidngx_worker_process_cycle(ngx_cycle_t *cycle, void *data){ ngx_int_t worker = (intptr_t) data; ngx_uint_t i; ngx_connection_t *... 阅读全文
posted @ 2013-07-22 16:52 cococo点点 阅读(3125) 评论(2) 推荐(0) 编辑
摘要: 进程的状态转换 进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。进程状态执行态run:进程正在使用CPU等待态wait:进程正在等待I/O完成,不在使用也不能使用CPU就绪态ready:进程不在使用CPU,但已经纯备好用使用CPU 在特定的情况下,这三种状态可以相互转换。状态转换 就绪->执行, 当前运行进程阻塞,调度程序选一个优先权最高的进程占有处理机; 执行->就绪, 当前运行进程时间片用完; 执行->等待,当前运行进程等待键盘输入,进入了睡眠状态。 等待->就绪,I/O操作完成,被中断处理程序唤醒。 刚从其他状态进入就绪态的进程需要置 阅读全文
posted @ 2013-07-22 10:16 cococo点点 阅读(5704) 评论(1) 推荐(2) 编辑
摘要: IOCP模型 IOCP全称I/O Completion Port,中文译为I/O完成端口。IOCP是一个异步I/O的Windows API,它可以高效地将I/O事件通知给应用程序,类似于Linux中的Epoll。简介 IOCP模型属于一种通讯模型,适用于Windows平台下高负载服务器的一个技术。在处理大量用户并发请求时,如果采用一个用户一个线程的方式那将造成CPU在这成千上万的线程间进行切换,后果是不可想象的。而IOCP完成端口模型则完全不会如此处理,它的理论是并行的线程数量必须有一个上限-也就是说同时发出500个客户请求,不应该允许出现500个可运行的线程。目前来说,IOCP完成端口是.. 阅读全文
posted @ 2013-07-16 18:37 cococo点点 阅读(4145) 评论(0) 推荐(3) 编辑
摘要: Nginx创建子进程 ngx_start_worker_processes位于Nginx_process_cycle.c中,主要的工作是创建子进程。 在Nginx中,master进程和worker进程是通过socketpair函数创建一对socket来实现,父进程与子进程之间的通信的。而这对socket被保存在进程结构体ngx_process中的channel[2]数组中,其中channel[0]为父进程的socket,channel[1]为子进程的socket。static voidngx_start_worker_processes(ngx_cycle_t *cycle, ngx_in.. 阅读全文
posted @ 2013-07-13 19:33 cococo点点 阅读(4050) 评论(1) 推荐(0) 编辑
摘要: Linux 进程 在用户空间,进程是由进程标识符(PID)表示的。从用户的角度来看,一个 PID 是一个数字值,可惟一标识一个进程。一个 PID 在进程的整个生命期间不会更改,但 PID 可以在进程销毁后被重新使用,所以对它们进行缓存并不见得总是理想的。进程表示 在 Linux 内核内,进程是由相当大的一个称为task_struct的结构表示的。此结构包含所有表示此进程所必需的数据,此外,还包含了大量的其他数据用来统计(accounting)和维护与其他进程的关系(父和子)。struct task_struct { volatile long state; void *stac... 阅读全文
posted @ 2013-07-08 09:31 cococo点点 阅读(2955) 评论(5) 推荐(1) 编辑
摘要: 守护进程 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护进程,大多数服务都是通过守护进程实现的。守护进程的特点 由于在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。但是守护进程却能够突破这种限制,它从被执行开始运转,直到整个系统关闭时才退出。如果想让某个进程不因为用.. 阅读全文
posted @ 2013-07-03 00:20 cococo点点 阅读(3318) 评论(9) 推荐(4) 编辑
摘要: Nginx的启动过程 主要介绍Nginx的启动过程,可以在/core/nginx.c中找到Nginx的主函数main(),那么就从这里开始分析Nginx的启动过程。涉及到的基本函数源码: 1 /* 2 * Copyright (C) Igor Sysoev 3 * Copyright (C) Nginx, Inc. 4 */ 5 6 7 #include 8 #include 9 #include 10 11 12 static ngx_int_t ngx_add_inherited_sockets(ngx_cycle_t *cy... 阅读全文
posted @ 2013-07-02 22:01 cococo点点 阅读(3513) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 13 下一页