随笔分类 - 编程语言 / C
摘要:使用动态规划求最大子数字和:s[i]表示data[i~n-1]以元素i开始的最大子数组和,a[i]表示data[i~n-1]中的最大子数组和 ;s[i]=max(s[i+1]+data[i], data[i]);a[i]=max(a[i+1], s[i]); 由于数组s,a递推的时候,都只用到数组的...
阅读全文
摘要:平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果...
阅读全文
摘要:看编程珠玑,深知二分搜索的用处之大,自己写了一遍,竟然出了死循环。代码如下: 1 int bsearch(int *data, int val,int left, int right) 2 { 3 if(left >1; 6 if(data[mid]==val) 7 ...
阅读全文
摘要:概括的说,指针其实就是可变数组的首地址,说是可变数组,是指其包含内容的数量的可变的,并且是可动态申请和释放的,从而充分节约宝贵的内存资源。我一向喜欢一维数组,除非万不得已,我一般是不用二维数组的,多维的则更是很少涉足了。因为一维简单,容易理解,而用指针指向的多维数组就具有相当的复杂性了,也因此更具有...
阅读全文
摘要:单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台...
阅读全文
摘要:题目1373:整数中1出现的次数(从1到n整数中1出现的次数)题目描述:亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他。问题是:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一...
阅读全文
摘要:处理字符串的过程中,难免会遇到字符匹配的问题。常用的字符匹配方法1. 朴素模式匹配算法(Brute-Force算法) 求子串位置的定位函数Index( S, T, pos). 模式匹配:子串的定位操作通常称作串的模式匹配。 目标串:主串S。 模式串:子串T。 匹配成功:若存在T的每个字符依次...
阅读全文
摘要:二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;任意节点的右子树不空,则右子树上...
阅读全文
摘要:图的遍历指的是从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。图的遍历操作和树的遍历操作功能相似。图的遍历是图的一种基本操作,图的许多其它操作都是建立在遍历操作的基础之上。图的遍历方法目前有深度优先搜索法和广度(宽度)优先搜索法两种算法。深度优先搜索法DFS深度优先搜索法的基本思想是:从...
阅读全文
摘要:回溯法是设计递归的一种常用方法,它的求解过程实质上就是一个先序遍历一棵"状态树"的过程,只是这棵树不是遍历前预先建立的而是隐含在遍历过程中的。下面举一个例子:求含n个元素的集的幂集:集合A={ {1,2,3}, {1,2}, {1,3}, {1}, {2,3},{2},{3},{}}; /...
阅读全文
摘要:二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。基本概念:(1)结点的度。结点所拥有的子树的个数称为该结点的度。(2)叶...
阅读全文
摘要:堆栈,也可直接称栈,是一种特殊的串行形式的数据结构,它的特殊之处在于只能允许在链结串行或阵列的一端进行加入资料和输出资料的运算。另外堆栈也可以用一维阵列或连结串行的形式来完成。 1 #define STACK_INIT_SIZE 100 2 #define STACKINCREMENT 10 ...
阅读全文
摘要:今天使用动态数组,本来想通过sizeof 获取动态数据,结果出现了错误。先对自己做个测试,能做出下面这个题目,并做出合理解释,可以不用往下看了。double* (*a)[3][6];cout>num; int arrary[num];是对的(注意在vc6.0中是错的)。因此我就在DEV C++中对刚才的array利用语句int n =sizeof(array);cout<<n<<endl来求大小,结果编译通过,运行时输入num的值10之后,输出n等于40!在这里很明显num的值是运行时才输入的,因此sizeof不可能在编译时就求得array的大小!这样一来size
阅读全文
摘要:表驱动法是一种编程模式(scheme)-从表里查找信息而不使用逻辑语句(if和case)。对简单的情况而言,使用逻辑语句更为容易和直白。但随着逻辑链的越来越复杂,查表法也就愈发显得更具吸引力一,表驱动法使用总则使用表驱动法的两个问题:如何在表中查询条目(1)直接访问(2)索引访问(3)阶梯访问在表里存些什么,可以是查询出来的结果数据,可以是保存一个描述该动作的代码,可以是保存对实现该动作的子程序的引用二,直接访问表,四个例子:计算每月的天数是一个很适合用直接访问表描述的例子,因为你可以用month变量去表里面查询记录。一般来说,你可以用原本控制着很多if语句的数据去直接访问表字符分类保险费率:
阅读全文
摘要:1、寻常算术转换 在运算中 如果其中一个操作数是long double 则另一个转为long double,其次 如果有一个为double 则另一个转为double,再次 float 、 unsigned long int 、 long int、 unsigned int 、 int2、sizeof 的返回值类型为 unsigned int3、NUL为ascii码 \0 英文空字符 NULL为空指针4、C语言中的符号重载5、#define banana int 与 typedef int banana2 区别区别1:宏定义的类型名可以用其他类型说明符修饰,如 unsigned banana a
阅读全文

浙公网安备 33010602011771号