8 NeilHappy

尚未进行身份认证

暂无相关描述

等级
博文 108
排名 1w+

猜你喜欢-----推荐系统原理介绍

写在正文之前 最近在做推荐系统,在项目组内做了一个分享。今天有些时间,就将逻辑梳理一遍,将ppt内容用文字沉淀下来,便于接下来对推荐系统的进一步研究。推荐系统确实是极度复杂,要走的路还很长。 AFirstGlance  为什么需要推荐系统——信息过载 随着互联网行业的井喷式发展,获取信息的方式越来越多,人们从主动获

2015-07-05 18:08:37

万剑归宗—架构设计中的抽象思维与具象思维

新项目上线,用户量不断增加,工作中继续不断发现问题,解决问题。花一点时间来总结一下自己对架构设计的理解。 小小的打个广告。这篇文章是发布在neil的微信公众号上。neil的文章都会第一时间发布在微信公众号上。欢迎小伙伴们关注。            微信公众号:互联网与作曲家   武侠小说中的“万剑归宗”---

2015-06-14 19:34:48

写给程序员的心理学入门知识(一)

正文之前neil是14年毕业的一枚后台开发,在大学的时候除了钻研技术外,还喜欢看一些其他领域的书籍。作为工科学生,我们都很擅长逻辑思维。但作为社会人,工作和生活中不可避免地需要跟很多人打交道,学点简单的心理学大有裨益。其实在我看来,心理学等很多社会科学的知识在本质上都是逻辑,只是换了一种思维方式而已。所以,对于我们工科生来说,学一些入门的心理学常识是没任何难度的。

2015-04-21 10:55:51

用递归方法对二叉树进行层次遍历

在这里看到了这个题。层次遍历是用队列,一级一级地入队列然后输出。而用递归的话,我首先想到是用两个栈来模拟队列,在递归遍历二叉树的过程中入栈,然后最后一次性出栈。但仔细思考后发现无法做到层次遍历。在这里看到了正确的方法。   主要代码如下:1voidPrintNodeAtLevel(BiTreeT,intlevel)2{3//空树或层级不合理

2013-04-04 08:57:30

C/C++内存管理 笔记

内存管理是个比较复杂的东西,我这里记录一些比较重要的笔记。   0.永远保持谦虚的态度来使用指针和操作内存。   1.在用free释放内存后,要记得将指针赋值为NULL,防止产生"野指针"。   2.尽量不要用指针指向常量字符串。看一个小例子:char*p="abcde";p[0]='m';std::cout   用gcc编译会出现

2013-03-30 08:51:49

二叉树的非递归遍历-----2013年3月20日

二叉树的递归遍历算法非常漂亮和易读,但是非递归算法就没那么容易懂了,尤其是后序遍历的非递归算法。一.前序遍历    1voidPreOrderTraverse(Node*root)2{3stackns;4Node*n=root;5while(n!=NULL||!ns.empty())6{

2013-03-20 17:03:43

僵尸进程

僵尸进程就是父进程fork之后并没有wait子进程。在子进程退出的时候,内核释放该进程所有的资源,比如文件描述符,内存,等等,但是依然为该进程保留一定的信息,只有该进程的父进程wait之后才会释放掉这些保留的信息。如果父进程没有wait,那么子进程就变成了僵尸进程。在高并发的服务器中,僵尸进程会有很大的危害。如果僵尸进程过多,那么就会有大量的进程号被僵尸进程占用,但是系统所能使用的进程是有限的。如

2013-03-12 18:59:12

无限式查找-----2013年2月28日

问题描述:已知一个数组x[],元素个数有多少并不很清楚,但是数组元素已经依顺序从小到大排好,而且在数组最后添加了足够多的MAX记号;MAX表示最大的值,比数组中每一个元素都大,而且个数足够多。编写一个程序,在这个数组中找出某个给定的值。   思路:二分查找法是一个非常高效的算法,但要想使用二分查找法,必须满足2个条件:1.元素是有序的,可以从小到大排列,也可以从大到小排列。2.知道元

2013-02-28 11:01:29

寻找固定的和----2013年2月26日

问题描述:有两个数组x[]与y[],各有m与n个元素,而且各个元素没有依顺序排列;d是一个已知的值。请写一个程序,看看在x[]与y[]中有没有满足x[i]+y[j]=d的元素。例如,若x[]为3,7,2,4,y[]为1,5,2,3,d为9;那么x[1]+y[2]与x[3]+y[1]都合乎条件,也即都是9。   思路:x[i]+y[j]=d。那么x[i]=d-y[j]了。将x[]数组按从

2013-02-26 10:25:51

寻找脚码----2013年2月24日

题目来自:《C语言精选名题百则技巧篇》   问题描述:已知一个整数数组x[],其中的元素彼此都不相同,而且也已经从小到大排列好。请用比较大小,相等的方式编写一个程序,找出给定的数组中是否有一个元素满足x[i]==i(注意:在代码中是从0开始索引的,也就是x[0]是第一个数,所以对应于代码也就是x[i]==i+1)的关系。举例而言,如果x[]={-2,-1,3,7,8},x[3]=3,因

2013-02-24 13:22:07

找出没有相邻的1的二进制数的个数---2013年2月17日

问题描述:用G(n)表示在有n位的二进制数中没有相邻的两个1的二进制数个数。比如,当n=3时,000,001,010,011,100,101,110,111这8个数中只有000,001,010,100,101这5个是没有相邻为1的,故G(3)=5。请写一个程序,输出G(n)的值。    错误的思路(考虑的不周全):采用"分治"的方法,比如n=3,每次都将处理原问题规模的二分之一,直到n

2013-02-17 12:45:17

busybox源码剖析(3)---cat.c

cat显示一个文件的内容。需要注意的是,cat并不能处理目录。1externintcat_main(intargc,char**argv)2{3intstatus=EXIT_SUCCESS;45if(argc==1){6print_file(stdin);7returnst

2013-02-15 12:20:41

busybox源码剖析(2)---pwd.c

pwd命令是列出当前的路径。1externintpwd_main(intargc,char**argv)2{3staticchar*buf;45buf=xgetcwd(buf);67if(buf!=NULL){8puts(buf);9r

2013-02-15 11:03:08

整数的所有不同分割数目--非递归算法

递归算法见:整数的所有不同分割数目--递归算法   思路:非递归与递归的思维顺序是互逆的,所以很容易写出以下代码。1#include2#defineMAX100034intp[MAX][MAX]={0};56intmain()7{8intn=2;9intindex_n,

2013-02-15 10:45:33

整数的所有不同分割数目----2013年2月15日

问题描述:把一个正整数写成若干个正整数的和。比如4=3+1,2+2,2+1+1,1+1+1+1,再加上自己,就一共有5种分割方式。   思路:求解4的所有分割方式,实际上就是求分割中以4为最大值而且和为4的所有分割方式,可以用p[4][4]来表示。抽象出来,就是p[n][m],表示分割中以m为最大值而且和为n的所有分割方式。那么,就有以下几种情况。   1.第一步当然是n=

2013-02-15 09:51:21

busybox源码剖析(1)---whoami.c

想找个简单的代码来看,学习代码的架构设计,就找到了busybox。先从最早的版本开始看。   whoami命令是获取当前终端的用户名。/etc/passwd文件存储了所有用户名的清单。要注意的是/etc存储的配置文件大多是系统级的配置文件。而whoami想要达到目的,就需要与/etc/passwd文件打交道。   首先来看whoami.c的主体程序:1ext

2013-02-14 21:42:59

集合的所有分割方式---2013年1月28日

问题描述:分割集合成多个子集合,这几个子集合间没有交集且他们的并集是原集合。    思路:将包含n个元素的集合set的分割表示为n个数字。比如set[]={1,2,3,4},那么{1,2},{3,4}就可以表示为1122,这4个数分别表示set[0]在第一个分割集合,set[1]在第一个分割集合,set[2]在第二个分割集合,set[3]在第二个分割集合。将这个过程称为编码。

2013-01-28 12:58:33

递归统计项目中的非空白代码行数

在准备阅读一个开源项目的代码前,可以大约看看整个项目共有多少代码,估计项目的规模。我就写了一个简单的程序来达到此目的,其中的一些代码参考了apue中的代码。   代码如下:ViewCode1//程序功能:统计一个文件夹(一个项目)中所有文件的有效代码行数(除去空白行)。23#include4#include5#inc

2013-01-26 17:59:50

列出所有K个元素的子集-----2013年1月26日

问题描述:列出一个集合的元素个数为k的所有子集。   思路:在字典顺序列出所有子集的基础上判断元素个数就可以了,比较简单。代码如下:1#include2#defineMAX100034intmain()5{6intn=5;7intset[MAX]={1};8intindex=0;9

2013-01-26 09:16:30

产生所有排列---字典顺序-----2013年1月23日

问题描述:以字典顺序产生所有排列。假定集合set是连续的并且按从小到大顺序排列好了的,并且有n个元素。    思路:算法的思路分成两个部分:A是递归产生以某个数字开头的排列,B是调用A来依次生成 1为第一位的所有排列,2为第一位的所有排列,....n为第一位的所有排列。    下面是A部分的详细思路:    1.以1234为例子。从右到左来寻找 (j=

2013-01-23 20:01:36
奖章
    暂无奖章