技术人生

不管技术的路有多难多远,尽力一路走下去!

排序:
默认
按更新时间
按访问量

MTK网关方案中 Boa Web Server 分析

针对当前MTK WEB机制进行代码分析总结,总体来说当前机制的重点及难点涉及两个部分,一个是请求处理的核心状态机变迁过程,另一个就是ASP动态解析器的实现,这里分为三部分进行描述,分别对核心状态机变迁、ASP词法解析、语法解析、语法树动作的总结,以及当前服务器的源码分析笔记。   一、核心状态机变...

2015-11-13 15:02:56

阅读数:3294

评论数:3

三向字符串快速排序

#include #include #include //三向字符串快速排序 //基于快速排序的思想,依据键值进行比较,划分为小于当前 //键值、等于当前键值、大于当前键值的3个子组,之后采用递 //归方法分别对3个子组再次进行排序。由于等于当前键值的子 //组所有键都已经相同,所以无需...

2015-09-20 22:23:47

阅读数:914

评论数:0

高位优先的字符串排序

#include #include #include //MSD(Most Significant Digit First) 高位优先的字符串排序 //该算法基于键索引计数法的思想,进行了扩展,使得该算法可以 //处理不等长的字符串排序,其中涉及两个关键点。 //1、采用分治法,从高位向...

2015-09-16 07:45:43

阅读数:1318

评论数:0

键索引计数法

#include #include #include //键索引计数法 #define KEY_BASE 5 typedef struct { char *pString; //条目字符串内容 int key; //条目的归类键值,比如张三属于1类等 }...

2015-09-13 18:20:25

阅读数:807

评论数:0

Dijkstra最短路径算法(针对加权有向图)

indexMinPQ.h #ifndef _INDEX_MIN_PQ_H_ #define _INDEX_MIN_PQ_H_ #define INDEX_MIN_PQ_TEST 0 typedef struct { int index; double cmpNum...

2015-09-02 14:00:00

阅读数:3407

评论数:0

prim最小生成树算法

edge.h #ifndef _EDGE_H_ #define _EDGE_H_ typedef struct { int v; //顶点之一 int w; //另一个顶点 double weight; //...

2015-08-29 10:12:32

阅读数:434

评论数:0

基于深度优先算法的有向图环路检测

1、digraph.h  #ifndef _DIGRAPH_H_H #define _DIGRAPH_H_H #define ENABLE_DIGRAPH_TEST 0 #define CHECK_NULL_AND_RET(x) { if((x) == NULL) return -1; } ...

2015-08-19 08:00:44

阅读数:2752

评论数:0

广度优先搜索

1、queue.h #ifndef _QUEUE_H_ #define _QUEUE_H_ #define ENABLE_QUEUE_TEST 0 typedef struct { int *data; int head; int tail; int count...

2015-08-16 16:23:16

阅读数:287

评论数:0

深度优先搜索

1、graph.h #ifndef _GRAPH_H_H #define _GRAPH_H_H #define ENABLE_GRAPH_TEST 0 #define CHECK_NULL_AND_RET(x) { if((x) == NULL) return -1; } typedef s...

2015-08-15 19:33:31

阅读数:324

评论数:0

基于线性探测法的散列表

#include //基于线性探测法的散列表 //使用线性探测解决键冲突问题,核心思想就是利用数组空位,当使用 //哈希函数计算出数组索引后,开始检测该索引位置是否已经被使用,如 //果已经使用,则索引向后递增(如果超出数组索引,则需要进行回绕到 //数组起始索引),直到找到空位为止,或者数...

2015-08-13 07:04:32

阅读数:1346

评论数:0

基于拉链法的散列表

#include //基于拉链法的散列表 //散列表通常一个难点就是出现键冲突后,如果进行冲突解决, //基于拉链法的散列表给每个键分配一个链表,当出现键冲突时, //将冲突键的条目项都挂接到一个链表下,从而解决了键冲突问题。 #define MAX_HASH_ARRAY 50 type...

2015-08-13 07:03:19

阅读数:2202

评论数:0

红黑二叉查找树

#include //红黑二叉查找树 //红黑二叉查找树是一种平衡二叉树,是基于2-3查找树的基础上演变的 //这里不对2-3查找树的算法进行描述,感兴趣的朋友可以自行了解一下 //2-3查找树的实现原理. // //在2-3查找树算法中,难点就是3-Node类型(含有2个key,3个子节点...

2015-08-09 19:18:40

阅读数:1095

评论数:0

二叉查找树

#include //二叉查找树 //结合了链表插入的灵活性和有序数组查找的高效性,适用于经常插入\查找 //的场合使用. //其中二叉查找树的特性为每个节点最多有两个子节点,其中左子节点小于当 //前节点,右子节点大于当前节点 // 6 // / ...

2015-08-08 09:33:41

阅读数:306

评论数:0

基于有序数组的二分查找

#define MAX_COUNT 100 //基于有序数组的二分查找 int keys[MAX_COUNT] = {0}; int values[MAX_COUNT] = {0}; int count = 0; int isEmpty() { return count == 0; ...

2015-08-05 07:12:41

阅读数:325

评论数:0

无序链表的顺序查找

#include #include //无序链表的顺序查找 //1 使用链表数据结构将字典对进行存储 //2 KEY值不能重复 //3 新插入数据时,如果出现KEY值重复,则当前字典中该KEY键的值替换 // 为最新插入的值 //4 对应的KEY键在字典中没有找到时,返回查找值为-1 ty...

2015-08-04 07:52:58

阅读数:414

评论数:0

堆排序

#include "util.h" //堆排序 // //二叉堆的特性就是每个节点的数值都比子节点的数据大,所以二叉堆最顶端的数值是最大的 //这里采用数组来存储二叉堆,为了方便计算父节点与叶子节点的索引,数据索引0没有使用,数 //组有效索引从1开始, 给定任意节点索引X,...

2015-08-02 15:44:29

阅读数:340

评论数:0

三向切分快速排序

#include "util.h" //三向切分快速排序 //核心思想就是将待排序的数据分为三部分,左边都小于比较值,右边都 //大于比较值,中间的数和比较值相等. //三向切分快速排序的特性就是遇到和比较值相同时,不进行数据交换, //这样对于有大量重复数据的排序时,三向切...

2015-08-02 09:10:32

阅读数:2375

评论数:0

快速排序

#include "util.h" //快速排序 //核心思想就是先选择一个比较值,然后从数据左侧开始前查找,找出一个比该值大的值,记下当前索引为i //之后从右侧开始向后查找,找出一个比该值小的值,记下当前索引为j,之后交换这两个索引的值,使得左侧 //数据都小于该比较值,...

2015-08-02 09:09:05

阅读数:311

评论数:0

自底向上归并排序

#include "util.h" /* 自底向上归并排序: 首先将大问题拆成小问题,第一轮左半部及右半部的每组数据都为1,进行归并排序 第二轮左半部及右半部每组数据个数都为2,进行归并排序 第三轮左半部及右半部每组数据个数都为4,进行归并排序 依此类推...... 1 xx...

2015-08-02 09:05:16

阅读数:1581

评论数:1

自顶向下归并排序

#include "stdio.h" #include "stdlib.h" #include "util.h" //自顶向下归并排序 //采用分治思想,将整个数据分成最小部分,使用原地归并先将最小部分归并 //,之后再一点点进行扩大数...

2015-08-02 09:01:55

阅读数:343

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭