数据结构与算法
文章平均质量分 61
蜗牛Running
Never too old to learn, never too late to turn!
展开
-
时间复杂度O(n)是什么意思
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法,一个算法的评价主要从时间复杂度和空间复杂度来考虑。转载 2014-10-21 20:43:38 · 1683 阅读 · 0 评论 -
二叉排序树及其C代码
1、二叉排序树的定义二叉排序树(Binary Sort Tree)又称二叉查找(搜索)树(Binary Search Tree)。其定义为:二叉排序树或者是空树,或者是满足如下性质的二叉树: (1)若它的左子树非空,则左子树上所有结点的值均小于根结点的值; (2)若它的右子树非空,则右子树上所有结点的值均大于根结点的值; (3)左、右子树本身又各是一棵二叉排序树。原创 2015-03-12 20:18:40 · 706 阅读 · 0 评论 -
最小生成树(MST)----普里姆(Prim)算法与克鲁斯卡尔(Kruskal)算法
1、概念:给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树.2、应用:例如:要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。这就需要找到带权的最小生成树。3、求最小生成树的算法3.1 普里姆(Prim)算原创 2015-03-10 10:49:33 · 2999 阅读 · 0 评论 -
栈和堆的区别
一般来说,写程序就是与数据打交道,在程序执行某一功能的时候,将该功能所需要的数据加载到内存中,然后在执行完毕之后释放掉该内存。数据在内存中的存放形式分为以下几种:* 栈区(stack)-------由编译器自动分配和释放,该区域一般存放函数的参数值,局部变量的值等;* 堆区(heap)-------一般由程序员分配,若程序员不释放,程序结束时可由操作系统回收;* 寄存器区-----原创 2014-12-03 14:16:32 · 598 阅读 · 0 评论 -
char[]和char*的一些区别
最近在练习char数组和char*的操作原创 2014-10-18 21:13:05 · 890 阅读 · 0 评论 -
算法分析
无论是在设计还是应用一种广泛认可的算法时,我们原创 2014-10-21 20:42:40 · 562 阅读 · 0 评论 -
操作系统链表应用(之页帧管理)
参考资料:原创 2014-10-21 21:50:36 · 1341 阅读 · 0 评论 -
进程与线程
线程的基本概念、线程的基本状态及状态之间的关系原创 2014-10-16 09:27:41 · 488 阅读 · 0 评论 -
C中各类数值型数据间的混合运算
整型(包括int、short、long)和浮点型(包括)原创 2014-11-04 15:43:36 · 2631 阅读 · 0 评论 -
一步一步写算法(之循环和递归)
其实编程的朋友知道,不管学什么语言,循环和递归是两个必须学习的内容。当然,如果循环还好理解一点,那么递归却没有那么简单。我们曾经对递归讳莫如深,但是我想告诉大家的是,递归其实没有那么可怕。所谓的递归就是函数自己调用自己而已,循环本质上也是一种递归。 1)求和递归函数 我们可以举一个循环的例子,前面我们说过,如果编写一个1到n的求和函数怎么写呢,你可能会这么写:转载 2014-10-15 14:56:28 · 454 阅读 · 0 评论 -
变量的作用域和存储方式
在讨论函数的形参变量时曾经提到, 形参变量只在被调用期间才分配内存单元,调用结束立即释放。 这一点表明形参变量只有在函数内才是有效的, 离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量, C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。 C语言中的变量,按作用域范围可分为两种, 即局部变量和全局变量。原创 2014-10-26 20:08:43 · 737 阅读 · 0 评论 -
CString与string的区别
CString MFC或者ATL实现stringC++标准库实现stringCString均字符串模板类string标准模板类(STL)定义字符串类已经纳入C++标准; CString(typedef CStringT> CString)Visual C++用字符串类继承自CSimpleStringT类主要应用MFCATL编程主要数据类型char(应用于ANSI)wchar_t(unico原创 2014-10-25 22:21:48 · 882 阅读 · 0 评论 -
单向链表
lianb链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域原创 2014-10-18 17:18:23 · 556 阅读 · 0 评论 -
操作系统循环链表应用(之第二次机会页面置换法)
参考资料:《》原创 2014-10-21 21:56:41 · 1718 阅读 · 0 评论 -
链表对比数组之问答
原创 2014-10-21 22:14:10 · 458 阅读 · 0 评论 -
用循环链表解决约瑟夫问题
1、约瑟夫问题的 编号为1,2,....,N的N个人按顺时针方向围坐一圈,每人持有一个密码(正整数),一开始任选一个正整数作为报数上限值M,从指定的人K开始按顺时针方向自1开始顺序报数,报到M时停止报数。报M的人出列,将他的密码作为新的M值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 解决思路还是原创 2014-11-10 10:21:05 · 2523 阅读 · 0 评论