![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
Stv_X
这个作者很懒,什么都没留下…
展开
-
C语言中多维数组的内存分配和释放(malloc与free)(转)
写代码的时候会碰到多维数组的内存分配和释放问题,在分配和释放过程中很容易出现错误。下面贴上一些示例代码,以供参考。 如果要给二维数组(m*n)分配空间,代码可以写成下面: char **a, i; // 先分配m个指针单元,注意是指针单元 // 所以每个单元的大小是sizeof(char *) a = (char **) malloc转载 2013-02-02 08:29:00 · 1121 阅读 · 0 评论 -
qsort快速排序
一、对int类型数组排序 int num[100]; int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排序(同int类型) char word[100]; int cmp转载 2013-02-05 14:07:55 · 279 阅读 · 0 评论 -
HDOJ_1010 DFS 迷宫 (奇偶剪枝)
HDOJ_1010 DFS 迷宫 (奇偶剪枝) 这个题目用一般的搜索无法完成,因为题目要求在指定的时间内完成,所以只好一步一步来啦,用DFS解决 但是如果这样结果会超时,网上说是用一种奇偶剪枝的方法来间断搜索时间,下面是剪枝的简单理论,一看就懂: 把map看作 0 1 0 1转载 2013-02-18 13:39:41 · 724 阅读 · 0 评论 -
二分查找
2012-06-06 22:54:41| 分类: 算法&数据结构|字号 订阅 1、二分查找判断某个数是否存在,若存在返回所在位置,否则返回-1 int bsearch(int* arr, int lhs, int rhs, int value) { int m; while(lhs { m = lhs + (rhs转载 2013-02-25 15:43:12 · 486 阅读 · 0 评论 -
关于一种HASH值公式 (一句话,不割)
1234567 目标:a[ ]:4356721 int HASH[n]={1,1,2,6,24,120,720,5040,40320};//(0!,1!,2!.....n!) res=0; for(i=0;i<9;i++) { k=0; for( j=0;j<i;j++) if(a[j]>a[i])原创 2013-03-28 22:08:17 · 764 阅读 · 0 评论 -
组合博弈小入门
用SG值+尼姆博奕(Nimm Game)即可。 SG负责博弈,尼姆负责组合。 SG值即在步骤允许的情况下,与前面一个必败点的差(也就是说这个差是规定的、能走的、其中一个步数)。 求法是求一个不等于它的后继点的SG的且大于等于零的最小整数。 尼姆博奕:有n堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 当游戏者面对这样一个局势:每个堆数连续原创 2013-03-27 20:02:00 · 599 阅读 · 0 评论 -
(先序遍历 后序遍历 中序遍历)三选二构造树
一. 先序遍历+中序遍历 以后序输出。 //由先序序列定义,此序列的第一个结点一定是二叉树的根。在中序序列里,此根结点左边的结点都是左子树的结点,而右边的结点都是右子树的结点。这样通过根结点,在中序序列中可以分离出:左子树的序列和右子树的序列。根据这两个序列,在先序序列中可以找到对应的左子序列和右子序列。在先序序列里左子序列的第一个结点是左子树的根,右子序列的第一个结点是右子树的根,这样就原创 2013-03-28 14:51:40 · 580 阅读 · 0 评论