Algorithm
文章平均质量分 80
milkcu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基本递归与尾递归
标题:基本递归与尾递归作者:MilkCu摘要:本文主要讲解了递归的两种基本形式,基本递归与尾递归,尾递归在一定程度上可以提高程序效率。然后简要介绍了可执行程序的组成:代码段,静态数据区,堆,栈。从组成上阐述了基本递归的缺陷和尾递归的高效。基本递归递归过程的两个基本阶段:递推与回归。以基本递归方式计算阶乘的函数实现:#include int fact(int n){原创 2014-04-04 22:14:39 · 1254 阅读 · 0 评论 -
栈的多种C语言实现
标题:栈的多种C语言实现内容:栈是一种后进先出(LIFO)的数据结构,C语言中可以使用数组、全局变量、指针传参、引用传参等方法实现。作者:MilkCu概念栈的定义我们可以使用下面的结构体来定义栈:typedef struct stack { int top; int key[M];} stack;栈的属性以栈s为例讨论。s.top指向最新插入的元素。当原创 2013-06-11 18:14:51 · 2269 阅读 · 0 评论 -
队列的多种C语言实现
标题:队列的多种C语言实现内容:队列是先进先出(FIFO)的线性表,C语言中可以使用数组、全局变量、引用实现队列。作者:MilkCu概念队列的操作队列是受限制的线性表,只允许在队尾(tail)插入、对头(head)删除。队列的操作方式与堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。队列的属性以队列q为例。q.head指向队头元素;q.tail指向下原创 2013-06-11 17:21:13 · 1130 阅读 · 0 评论 -
算法精解概述
原创:算法精解概述作者:MilkCu摘要:本文对《算法精解》做了简单描述,对其中的约束和核心思想简单介绍了一下。引言《算法概述》是一本比较基础的讲解算法和数据结构的书,英文名Mastering Algorithms with C。对于每种数据结构和算法,里面都有完整的C语言实现,并没有单纯讲解算法书籍的空洞感。这本书的英文版是在2001年上市的,中文版2013年才上市,翻译步伐有点原创 2014-04-04 21:33:34 · 1511 阅读 · 0 评论 -
单链表的表示和实现 - 数据结构
基本概念链式存储结构,不要求逻辑上相邻的元素在物理上也相邻,没有顺序存储结构所具有的的弱点(在作插入或删除操作是,需移动大量元素),但同时也失去了顺序表可随机存取的优点。单链表的结点由数据域和指针域构成,多个结点链结成一个链表。代码实现# include # include # define OK 1# define ERROR -1# define OVERFLOW -2原创 2013-05-20 21:23:18 · 1152 阅读 · 0 评论 -
分治算法
概念分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。例题给定两个数a和b,计算出0~9在a和b之间出现的次数源代码# include void handle(int x, int n[]);void handle(int x, int n[]);int main(void)原创 2013-04-13 23:44:48 · 1107 阅读 · 0 评论 -
变易算法 - STL算法
原创:变易算法 - STL算法作者:MilkCu摘要:C++ STL标准模板库在数据结构和算法的实践领域发挥着重要作用,极大的提高了开发效率。STL的三大组成部分为容器、迭代器、算法,本文主要讲解STL算法中的变易算法。本文从实践的角度简单介绍了一下函数原型和相关函数的使用。引言C++ STL的变易算法(Mutating Algorithms)是一组能修改容器元素数据的模板函数,可原创 2014-04-12 09:13:03 · 1339 阅读 · 0 评论 -
带哨兵的双向循环链表的C语言实现
标题:带哨兵的双向循环链表的C语言实现内容:链表是一种基本的链式存储结构,带哨兵的双向循环链表更是一种方便的数据结构。作者:MilkCu定义双向链表,也叫双链表,是链表的一种。它的每个数据节点含有两个指针,分别指向前驱和后继。在带哨兵的双向循环链表中,我们可以方便的访问任意节点的前驱节点和后继节点。实现下面的程序能够对双向链表实现元素的查找、插入、删除等操作,其中main函原创 2013-06-11 16:52:01 · 1915 阅读 · 0 评论 -
三元组--数据结构
摘自《数据结构:C语言版》(严蔚敏,吴伟民编著)第12页例1-7。抽象数据类型Tiplet的表现与实现。C语言(本书未直接采用类和对象等设施,而是从C语言中精选了一个核心子集,并增添C++语言的引用调用参数传递方式等,构成一个类C描述语言)源代码如下:# include # include # define TRUE 1# define FALSE 0# define原创 2013-05-18 12:46:38 · 2232 阅读 · 0 评论 -
栈的C语言实现
栈的C语言实现简述栈是实现后进先出(FIFO)策略的一种基本数据结构。我们可以通过多种方式实现栈这种数据结构。我们可以用下面的结构体来定义栈:typedef struct stack { inttop; intkey[M];} stack;栈的一个属性s.top指向最新插入的元素。栈的另外一个属性s.key[]存放的是元素的关键字,包原创 2013-05-03 18:38:00 · 1527 阅读 · 0 评论 -
数论 - 挑战编程
原创:数论 - 挑战编程作者:MilkCu摘要:数论是一门研究整数性质的理论,是有趣和优美的数学分支。数论只是在编程中也被广泛应用,比如,素数的问题、最大公约数、最小公倍数、模运算等问题。素数前10个素数分别为:2, 3, 5, 7, 11, 13, 17, 19, 23, 29.算术基本定理:每个整数表示成素数乘积的方式只有一种。大于1且不是素数的整数称为合数(compo原创 2014-04-13 17:18:31 · 1946 阅读 · 0 评论 -
STL非变易算法 - STL算法
C++ STL标准模板库在数据结构和算法的时间领域发挥着重要作用,极大的提高了开发效率。STL的三大组成部分为容器、迭代器、算法,本文主要讲解STL算法中的非变易算法。本文从实践的角度简单介绍了一下相关函数的使用。C++ STL的非变易算法(Non-mutating algorithms)是一组不破坏函数数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配,基本上可用于各种容器。下面的叙述中迭代器区间默认为[first, last),迭代器具有“++”迭代和“*”访问操作。原创 2014-03-12 21:01:30 · 1574 阅读 · 0 评论
分享