- 博客(14)
- 资源 (8)
- 收藏
- 关注
转载 ceph浅析系列
转载自:http://yizhaolingyan.net/?p=11开源技术专家章宇同学(@一棹凌烟)在C3沙龙分享过Ceph之后,最近来了劲头,一口气写了一系列《Ceph浅析》的博文,共8篇:“Ceph浅析”系列之一——前言“Ceph浅析”系...
2018-08-24 14:33:21
262
原创 offsetof和contain_of
#define offsetof(type, member) (size_t)(&(((type*)0)->member))说明:其中type表示某结构体类型,member表示该结构体类型某一成员名。offsetof的功能是求结构体中某一成员在整个结构体中的偏移量。具体方法是将地址0强制转换成type*类型,此时成员的地址就是成员在结构体中的偏移量。有了offsetof,就可
2015-05-19 21:44:51
754
原创 Linux如何创建idle进程
关于idle进程 也就是pid=0的进程。它是内核完成初始化后所创建的第一个进程,在系统空闲时执行。它的代码很简单:for(;;) pause(); 强调一下,idle进程是用户态进程。那么问题来了,内核从启动到初始化过程总都处在内核态,那么内核是怎么创 建idle并且切换到用户态呢? 一种很直接简单的想法是,内核直接调用用户空间的代码实现内核态到用户态的转换,
2015-04-24 10:22:03
1561
原创 linux性能监控之free
free用于显示系统内存使用情况,一直对free的输出迷惑不清,特总结如下:12 3 4 5 6 free命令的输出结果来自于文件/proc/meminfo,默认以KB为单位显示,可以通过-m选项以MB显示,为了方便起见,将输出结果划分为4行3列,FO[1][1]表示输出结果的第一行第一列,即total。以下是各行各列的解释:FO[2][1]:表示系统认为
2014-12-28 22:08:19
536
原创 二叉查找树非递归实现
一、二叉查找树概念二叉查找树也称二叉排序树、二叉搜索树,它有如下特点:1、它是一个二叉树(不一定是完全二叉树)。2、对于树上每个节点,如果存在左孩子,则左孩子的值比自己小,如果存在右孩子,则右孩子的值比自己大。3、对于每个节点,它的左子树和右子树都是二叉查找树。从以上特点可以总结出一个很重要的性质:中序遍历二叉查找树,将得到一个已排好序的序列。另外二叉查找树在查找方
2014-12-14 12:00:55
623
原创 二叉树的非递归实现
二叉树的概念就不多讲,直接上代码:#include #include #define STACK_INIT_SIZE 10#define INCREASE_SIZE 10typedef struct Node{ char data; struct Node *left; struct Node *right; int lflag; int rflag;}Node,
2014-12-14 11:56:52
397
原创 由快速排序引申的两个分类问题
快速排序的关键操作在于分割,即以某个关键值为轴讲序列分割成比轴大和比轴小的两类。下面是由此引申的两个分类问题。1.已有有一组整数,如何使得数组中奇数在偶数的前面。这个问题的解法和快速排序的分割很相似,代码如下:void do_parttion(int *pdata, int size){ int i, j; i = 0; j = si
2014-12-11 14:23:22
464
原创 双向链表的简单实现
一、简单说说链表概念链表和数组在逻辑上讲都属于线性表,只是在物理上他们的存储方式不一样。怎么个不一样就不废话了,但是总结一条,这种存储方式的不同使得数组便于随机存取,而链表在删除和插入方面效率要比数组高。二、代码实现:(操作指针是要保持头脑清醒,时刻注意NULL,你懂得,哈哈)#include #include #include #define DATA_SIZE 10ty
2014-12-10 15:59:54
359
原创 二路归并排序实现
一、归并算法思想归并算法是建立在归并操作的基础上的。归并操作是指将两个或者多个以上的有序序列合并成一个新的序列,得到的新序列仍然有序。假设带排序序列大小为n,则初始状态下带排序序列有n个有序的子序列,其中每个子序列的大小为1,经过一次“两两归并”后,带排序序列将包含多个有序的大小为2的子序列。。。以此类推,直到整个序列有序。二、代码实现#include #includ
2014-12-07 18:46:50
425
原创 堆排序实现
一、堆排序简单介绍1、什么是堆:堆是一个完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、从一个节点开始筛选:筛选的目的是使得以当前开始结点为根的子树也是一个堆。3、堆排序的基本过程:1、从最后一个非叶子节点(当前待排序节点数/2)开始筛选,筛选到第一个节点结束,此时第一个节点就是当前的最值。2、将当前最值与最后一个节点
2014-12-07 17:10:19
430
原创 快速排序的非递归实现
一、快速排序简单介绍,参考http://linux.cn/article-3613-1.html快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实
2014-12-07 15:36:15
408
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人