
数据结构
文章平均质量分 78
petershina
123
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
双向链表
#include #include struct data { int link_value; }; struct link_node { struct link_node *p_pre_link; struct link_node *p_next_link; struct data value; }; struct link_node *create_node(struct d原创 2015-04-10 14:46:25 · 532 阅读 · 0 评论 -
串操作
#include #include #include #include "string_lib.h" /*拷贝src到dst,dst[0]为src长度*/ int str_assign(STRING *dst, char *src) { int i = 0; if(NULL == src) { return -1; } if(dst.string原创 2015-04-10 14:47:23 · 493 阅读 · 0 评论 -
快速排序法
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序原创 2015-04-12 15:34:30 · 726 阅读 · 0 评论 -
KMP算法
转载于:http://blog.youkuaiyun.com/v_july_v/article/details/7041827 作者:July 时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下原创 2015-04-07 14:23:41 · 549 阅读 · 0 评论 -
大数的阶乘算法
用data数组来存放阶乘的每一位数字,首先令第一位的数值为1,位数为1,然后将每次相乘的乘积存回数组,并循环处理每个数组中超过10的数,若数值超过10,则需要进位,将位数加1,原来的数除以10,商数加前一位数的数值后存回前一位数的数组中,再将余数存回原来位数的数组中。 例如求5!的值 步骤一: 1!=1 位数1 数组内容0 0 0 1 步骤二: 2!=2原创 2015-04-16 09:08:24 · 6273 阅读 · 0 评论 -
插入法排序(含二分法)
插入法排序和冒泡法排序类似,只不过冒泡法排序是每次循环获取i之后最小(大)的值到数组前排,而插入法排序算法是每次对i前面的数组进行从小到大(从大到小)排序。 1.插入排序, 从第二个数开始,先将第二个数做一个副本放在一旁(变量中)。 2.第二个数同前一个数比较,小于则用前一个数覆盖第二个数, 然后将副本放在前一个数前面 3.再将第三个数做一个副本取出,第三个数同前一个数比较,小于则用前一原创 2015-04-12 15:55:00 · 985 阅读 · 0 评论 -
冒泡法排序和选择法排序
冒泡法排序每次比较i前面的数组,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样i前面的数组经过一次次相邻交换,顺序就变成从小到大或从大到小排列。 #include /*冒泡法排序*/ void sort1(int *digits, int nums) { int i = 0, j = 0, k = 0; int tmp_digit = 0; if(NULL ==原创 2015-04-12 16:17:30 · 1385 阅读 · 0 评论 -
图文详解Radix树
基数树 对于长整型数据的映射,如何解决Hash冲突和Hash表大小的设计是一个很头疼的问题。 radix树就是针对这种稀疏的长整型数据查找,能快速且节省空间地完成映射。借助于Radix树,我们可以实现对于长整型数据类型的路由。利用radix树可以根据一个长整型(比如一个长ID)快速查找到其对应的对象指针。这比用hash映射来的简单,也更节省空间,使用hash映射hash函数难以设计,不转载 2016-11-23 22:49:55 · 12612 阅读 · 0 评论