数据结构和算法
数据库码农
博客已经迁移到 简书,URL = http://www.jianshu.com/u/69fa0ec8790f
展开
-
博客迁移
大家好,鄙人博客已经迁移到如下地址: https://www.jianshu.com/u/69fa0ec8790f原创 2018-05-16 19:51:10 · 280 阅读 · 0 评论 -
字符串反转处理
/************************************************************************* > File Name: rvs.c > Author: perrynzhou > Mail: 715169549@qq.com > Created Time: Wed 21 Sep 20原创 2016-09-20 15:46:19 · 255 阅读 · 0 评论 -
内存池的实现
基本的架构设计: 基本运行结果:$ ./mem_pool ...UseBlocks[0] =(nil),FreeBlocks[0] =(nil) ...UseBlocks[1] =(nil),FreeBlocks[1] =(nil) ...UseBlocks[2] =(nil),FreeBlocks[2] =(nil) ...UseBlocks[3] =(nil),FreeBlocks[3] =原创 2016-09-22 21:53:43 · 759 阅读 · 0 评论 -
jump Consistent hash:零内存消耗,均匀,快速,简洁,来自Google的一致性哈希算法
jump Consistent hash:零内存消耗,均匀,快速,简洁,来自Google的一致性哈希算法 2015-03-13 简介 jump consistent hash是一种一致性哈希算法, 此算法零内存消耗,均匀分配,快速,并且只有5行代码。 此算法适合使用在分shard的分布式存储系统中 。 此算法的作者是 Google 的 John Lamping 和转载 2016-06-12 12:59:00 · 7454 阅读 · 0 评论 -
C 内存池的实现
总体的设计思路: 首先按照内存块的大小申请N*块大小的连续内存区域。 构造内存块的双向链表,有2种,一种是空闲链表;另外一种为已经使用的链表。该双向链表也是一块固定大小的内存区域,每个链表节点存储了当前内存块的地址、该节点上一个节点以及下一个节点。 #define ut_base(TYPE) \ struct { \原创 2016-05-03 09:43:31 · 401 阅读 · 0 评论 -
C 双向链表的实现
rlist.h代码 #ifndef __LIST_H #define __LIST_H #include #include #define UT_BASE(TYPE) \ struct { \ TYPE *prev; \ TYPE *next;原创 2016-05-03 09:44:35 · 230 阅读 · 0 评论 -
Linux实现插入排序的双向链表
实现插入自动排序的双向链表,插入的的每个元素是唯一且是排序好的,从链表头到链表尾部都是按照从小到大的顺序的 ds.h如下: /************************************************************************* > File Name: ds.h > Author: zhoulin原创 2016-05-03 09:44:49 · 368 阅读 · 0 评论 -
文本统计字母出现的次数(所有的可打印的字符)
最近在看看有意思的编程,发现算法真是一个好东西,呵呵,自己也写了一个简单的demo 代码具体如下: #include #include string.h> #include #include #include #include #include #define bSize 255 #define bufSize 4096 static uint64_t ar原创 2016-05-03 09:44:58 · 854 阅读 · 1 评论 -
C实现heap堆排序
所谓的堆排序,就是把数组虚拟成二叉堆。其定义必须满足如下2个条件中的一个条件: 假设数组a[n] (1) 二叉堆中的父节点a[r] 必须大于等于子节点 (2)二叉堆的父节点必须小于等于子节点 Parent(i): return a[(i] Left(i):原创 2016-05-03 09:45:25 · 343 阅读 · 0 评论 -
C 实现简单的栈
加班无聊,没事就写了一个简单栈,该源代码包含一个stk.h和stk.c 具体实现如下 stk.h typedef unsigned int uint; typedef struct _node { void *data; uint size; struct _node *down; }__attribute__((packed)) node; typ原创 2016-05-03 09:43:08 · 342 阅读 · 0 评论 -
平衡二叉树旋转原理(图示)
/************************************************************************* > File Name: btree.h > Author: zhoulin > Mail: 715169549@qq.com > Created Time: Sat 30 Ap原创 2016-05-02 20:21:32 · 16880 阅读 · 1 评论 -
位图排序基本实现
/************************************************************************* > File Name: bmp.h > Author: zhoulin > Mail: 715169549@qq.com > Created Time: Wed 11 May 2016原创 2016-05-11 22:22:42 · 337 阅读 · 0 评论