Short URL or tiny URL is an URL used to represent a long URL. For example, http://tinyurl.com/45lk7x will be redirect to http://www.snippetit.com/2008/10/implement-your-own-short-url.There are 2 main advantages of using short URL: Easy to remember - Instead of remember an URL with 50 or more characters, you only need to remember a few (5 or more depending on application's implementation). More portable - Some systems have limi
w397090770 12年前 (2013-04-15) 20496℃ 0喜欢
Few months ago, I introduced a simple algorithm that allow users to implement their own short URL into their system. Today, I have some spare time so I decided to write the short URL algorithm's implementation in PHP.At first, we define a function called shorturl() that receives a URL as the input and returns an array that contains 4 hashed values (each 6 characters).[php]function shorturl($input) { ... // return array of w397090770 12年前 (2013-04-14) 3846℃ 0评论1喜欢
在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中。但应将哪个页面调出,须根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法(Page-Replacement Algorithms)。置换算法的好坏,将直接 w397090770 12年前 (2013-04-11) 5396℃ 0评论2喜欢
一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入 w397090770 12年前 (2013-04-10) 14366℃ 0评论19喜欢
memset的函数原型是[code lang="CPP"]void * memset ( void * ptr, int value, size_t num );[/code] 这个函数的功能是将ptr所指向的某一块内存中的每个字节的内容全部设置为value指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。 英文解释:Sets the first num bytes of the block of memory pointed by ptr to the specified va w397090770 12年前 (2013-04-08) 7843℃ 0评论8喜欢
在/archives/227主要介绍了memcpy函数的实现,并说明了memcpy函数的局限性。今天来介绍一下和memcpy函数功能类似的函数memmove。memmove函数和memcpy函数的原型为[code lang="CPP"]#include <string.h>void *memcpy(void *dest, const void *src, size_t n);void *memmove(void *dest, const void *src, size_t n);[/code]memmove英文介绍,里面很详细的介绍了memmove函数的 w397090770 12年前 (2013-04-08) 4699℃ 0评论0喜欢
Linux内核代码有很多很经典的代码,仔细去看看,可以学到很多知识。今天说说Linux是怎么实现min和max的。max和min函数都是比较常用的,可以用函数,或者利用宏去实现,一般我们会这样去写:[code lang="CPP"]#define min(x,y) ((x)>(y)?(y):(x))#define max(x,y) ((x)>(y)?(x):(y))[/code]但是上面的写法是有副作用的。比如输入[code lang="CPP"]minv w397090770 12年前 (2013-04-06) 7420℃ 0评论1喜欢
memcpy函数在面试中很容易被问到如何去实现。memcpy函数是内存拷贝函数,用于将一段内存空间数据拷贝到另一段内存空间中,但是它和memmove函数不同的是,它对内存空间有要求的,dest和src所指向的内存空间不能重叠,否则的数据是错误的。例如:src所指向的内存空间后面部分数据被新拷贝的数据给覆盖了,所以拷贝到最后,数 w397090770 12年前 (2013-04-05) 20379℃ 8喜欢
atoi函数是C语言库提供的,是把字符串转换成整型数和把字符串转换成整型数。而itoa函数是广泛应用的非标准C语言扩展函数,由于它不是标准C语言函数,所以不能在所有的编译器中使用,它的功能是把一整数转换为字符串。两个函数功能很好理解,但是它们的实现需要考虑到很多问题,在面试中,很多面试官都会问atoi和itoa的实现 w397090770 12年前 (2013-04-05) 17051℃ 3评论1喜欢
C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。 C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。 C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。在C中定义一 w397090770 12年前 (2013-04-05) 5171℃ 0评论0喜欢