上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 本文转载于http://blog.csdn.net/effective_coder/article/details/8697789。一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例如,对于n个元素 阅读全文
posted @ 2013-07-31 17:34 jiayouwyhit 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 在C语言中,数值常数可以是3中形式: (1)在数值前面加0表示的是8进制数据; (2)在数字前面加0x表示的是16进制数; (3)在数值前面什么也不加,表示的是10进制数值。 目前C语言规定的整数数值只能用这3中表示方法。 例如,我们相对某一个变量a赋值为48,则可以是以下几种形式: int a = 48; int a = 060; int a = 0x0011000... 阅读全文
posted @ 2013-07-31 17:06 jiayouwyhit 阅读(1032) 评论(0) 推荐(0) 编辑
摘要: 位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。同时需要尤其指出的是:位运算都是针对各个数值的补码进行位运算操作,因此,对负数进行位运算也是可以的。 补码的求解方式为:正数的补码就是其本身,负数的补码是对除了符号位(最高位)以外的其它各个位进行按位取反操作,然后再对结果进行加1,即得到负数的补... 阅读全文
posted @ 2013-07-31 16:59 jiayouwyhit 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 本文还来不及看,暂存于此。该算法是目前号称最快的八皇后问题求解算法。 核心代码如下: void test(int row, int ld, int rd) { int pos, p; if ( row != upperlim ) { pos = upperlim & (~(row | ld | rd )); ... 阅读全文
posted @ 2013-07-31 13:24 jiayouwyhit 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 八皇后问题是在8*8的棋盘上放置8枚皇后,使得棋盘中每个纵向、横向、左上至右下斜向、右上至左下斜向均只有一枚皇后。八皇后的一个可行解如图所示: ... 阅读全文
posted @ 2013-07-31 11:08 jiayouwyhit 阅读(1851) 评论(0) 推荐(0) 编辑
摘要: 1.一维数组初始化 对于一维数组,其初始化有一个错误的观点是:一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1. 数组可以用一个列值来初始化,例如 int v1[] ={1,2,3,4}; char v2[]={'a','b','c',0}; 当数组定义时没有... 阅读全文
posted @ 2013-07-31 10:35 jiayouwyhit 阅读(1206) 评论(0) 推荐(0) 编辑
摘要: 一、基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己。 要点: 1、C语言函数可以递归调用。 2、可以通过直接或间接两种方式调用。目前只讨论直接递归调用。 二、递归条件 采用递归方法来解决问题,必须符合以下三个条件: 1、可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的... 阅读全文
posted @ 2013-07-31 00:00 jiayouwyhit 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 以下转自刘海涛个人博客:http://zhedahht.blog.163.com/blog/static/2541117420114331616329/ 题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上(并不仅只是最长的两条对角线)。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。 ... 阅读全文
posted @ 2013-07-30 23:06 jiayouwyhit 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 以下转自刘海涛的网易博客:http://zhedahht.blog.163.com/blog/static/254111742007499363479/ 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在... 阅读全文
posted @ 2013-07-30 23:01 jiayouwyhit 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 汉诺塔的算法主要包括3个步骤:第一,把a上的n-1个盘通过c移动到b。第二,把a上的最下面的盘移到c。第三,因为n-1个盘全在b上了,所以把b当做a重复以上步骤就好了。所以算法看起来就简单多了。不过,思考过程还是很痛苦的,难以理解。递归中会保存数据的好处在这里又得到体现,太神奇了。 汉诺塔代码如下: ? ... 阅读全文
posted @ 2013-07-30 15:22 jiayouwyhit 阅读(620) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页