算法相关
文章平均质量分 75
hankwangwang
这个人很懒,什么都没有留下
展开
-
最快排序和搜索算法的最简代码实现
最快排序和搜索算法的最简代码实现 By 沈东良 http://blog.csdn.net/shendl/前言 算法的核心问题是排序和搜索。这2个领域应用最广,研究也最透。本文我将转载 2009-04-15 13:29:00 · 1956 阅读 · 1 评论 -
dlmalloc解析连载三
上一篇讨论了dlmalloc对大小在256字节以下的chunk块进行的组织管理,本篇我们再来看看对于大小在256字节以上的chunk块,dlmalloc是如何管理的。对于大小在256字节以上的chunk块,dlmalloc也采用了所谓的分箱机制,不过由于大于256的数目有很多,因此这里的分箱不能够像对于0到256这个有限区间的分箱来得简单。具体来说如下表:字节范围转载 2009-05-24 14:10:00 · 2053 阅读 · 0 评论 -
dlmalloc解析连载二
前面连载提到过对于大小在256字节以下的chunk块是通过malloc_chunk组织管理的,256字节以下的chunk块一共有256/8=32类,即字节为8字节、16字节、24字节、32字节,……,256字节,因此dlmalloc维护32个双向环形链表(而且具有链表头节点,加头节点的最大作用就是便于对链表内节点的统一处理,即简化编程),每一个链表里的各空闲chunk块的大小一致,因此当应用程序需转载 2009-05-24 14:10:00 · 2284 阅读 · 1 评论 -
dlmalloc解析连载一
dlmalloc是目前一个十分流行的内存分配器,其由Doug Lea(主页为http://gee.cs.oswego.edu/)从1987年开始编写,到目前为止,最新版本为2.8.3(可以从ftp://g.oswego.edu/pub/misc/malloc.c获取),由于其高效率等特点被广泛的使用(比如一些linux系转载 2009-05-24 14:09:00 · 2564 阅读 · 0 评论 -
dlmalloc解析连载四
上两篇讲解的chunk块是dlmalloc内比较细粒度的管理结构,比它们更大的内存块被称之为段(segment),其结构体以及相关定义如下:struct malloc_segment { char* base; /* base address */ size_t size; /* allocated size转载 2009-05-24 14:11:00 · 2520 阅读 · 0 评论 -
LRU(最近最少使用页面置换算法)淘汰算法
什么是LRU算法? LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式——在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极原创 2009-04-21 14:17:00 · 8531 阅读 · 0 评论 -
内核重新计算时间片的技巧
每个cpu一个运行队列,每个队列有两个优先级数组,一个活跃的数组,一个过期的数组活跃数组内的进程还有时间片,过期数据内的进程时间片都耗光了 当一个进程的时间片用光时,会被移动到过期数组里,这个时候它的时间片又重新计算好了;当所有进程时间片都耗光了,只要让活跃数组和过期数组一交换,就完成了时间片的重新计算 适用场景:一组资源的状态会经常改变,每次改变都要重新计算原创 2009-04-21 14:18:00 · 2045 阅读 · 0 评论 -
qsort 与bsearch
兩個最重要的資料結構就是「搜尋」和「排序」了,所以看過資料結構的人,想必知道快速排序算是在排序中最好用的,而二元搜尋也是一樣,但是實做的過程往往很複雜,但是std的標準函式庫已有提供給我們使用了,以下就來討論如何使用qsort和bsearch。※qsort函式void qsort( void *buf, size_t num, size_t size, int (*compare)转载 2009-04-15 13:43:00 · 2397 阅读 · 2 评论 -
qsort快速排序的整理
最近用到了qsort,简单整理一下,方便以后的查找 qsort,包含在stdlib.h头文件里,函数一共四个参数,没返回值.一个典型的qsort的写法如下qsort(s,n,sizeof(s[0]),cmp);其中第一个参数是参与排序的数组名(或者也可以理解成开始排序的地址,因为可以写&s[i]这样的表达式,这个问题下面有说明); 第二个参数是参与排序的元素个数; 第三个三数是单个原创 2009-04-15 13:34:00 · 4043 阅读 · 2 评论 -
分布式系统开发里必须要解决的3个技术问题
以前跟开发提过很多次,今天又有人出错了,看样子不经常提不行这里记录一下,看到的开发人员都注意一下:这3个问题经常出现,不解决的话,一定会造成经济损失的1、同一个请求被发送了多次可能出现的地方:(1)和别人接口对接,别人同一份数据发送了多次 (2)用户在“提交”按钮里点击了多次原创 2012-12-19 17:38:31 · 10461 阅读 · 1 评论