07 2013 档案

摘要:本文转载于http://blog.csdn.net/effective_coder/article/details/8697789。一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例如,对于n个元素 阅读全文
posted @ 2013-07-31 17:34 jiayouwyhit 阅读(404) 评论(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 阅读(1072) 评论(0) 推荐(0)
摘要:位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。同时需要尤其指出的是:位运算都是针对各个数值的补码进行位运算操作,因此,对负数进行位运算也是可以的。 补码的求解方式为:正数的补码就是其本身,负数的补码是对除了符号位(最高位)以外的其它各个位进行按位取反操作,然后再对结果进行加1,即得到负数的补... 阅读全文
posted @ 2013-07-31 16:59 jiayouwyhit 阅读(444) 评论(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 阅读(629) 评论(0) 推荐(0)
摘要:八皇后问题是在8*8的棋盘上放置8枚皇后,使得棋盘中每个纵向、横向、左上至右下斜向、右上至左下斜向均只有一枚皇后。八皇后的一个可行解如图所示: ... 阅读全文
posted @ 2013-07-31 11:08 jiayouwyhit 阅读(1873) 评论(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 阅读(1259) 评论(0) 推荐(0)
摘要:一、基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己。 要点: 1、C语言函数可以递归调用。 2、可以通过直接或间接两种方式调用。目前只讨论直接递归调用。 二、递归条件 采用递归方法来解决问题,必须符合以下三个条件: 1、可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的... 阅读全文
posted @ 2013-07-31 00:00 jiayouwyhit 阅读(948) 评论(0) 推荐(0)
摘要:以下转自刘海涛个人博客:http://zhedahht.blog.163.com/blog/static/2541117420114331616329/ 题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上(并不仅只是最长的两条对角线)。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。 ... 阅读全文
posted @ 2013-07-30 23:06 jiayouwyhit 阅读(466) 评论(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 阅读(448) 评论(0) 推荐(0)
摘要:汉诺塔的算法主要包括3个步骤:第一,把a上的n-1个盘通过c移动到b。第二,把a上的最下面的盘移到c。第三,因为n-1个盘全在b上了,所以把b当做a重复以上步骤就好了。所以算法看起来就简单多了。不过,思考过程还是很痛苦的,难以理解。递归中会保存数据的好处在这里又得到体现,太神奇了。 汉诺塔代码如下: ? ... 阅读全文
posted @ 2013-07-30 15:22 jiayouwyhit 阅读(666) 评论(0) 推荐(0)
摘要:1.关于常用内存申请函数的说明 (1) 各个动态内存申请函数简要说明 malloc 分配指定字节数的存储区。此存储区中的初始值不确定。 calloc 为指定长度的对象,分配能容纳其指定个数的存储空间。该空间中的每一位(bit)都初始化为0。 realloc 更改以前分配区的长度(增加或减少)。当增加长度时,可能需将以前分配区的内容移到另一个足够大的区域,而新... 阅读全文
posted @ 2013-07-29 22:23 jiayouwyhit 阅读(1464) 评论(0) 推荐(0)
摘要:1.基于栈的问题分析 我们把n个元素的出栈个数的记为f(n), 那么对于1,2,3, 我们很容易得出: f(1) = 1 //即 1 f(2) = 2 //即 12、21 ... 阅读全文
posted @ 2013-07-29 15:09 jiayouwyhit 阅读(30928) 评论(0) 推荐(9)
摘要:2. 第一节 习惯C++2.1 C++是一个语言联邦,包括以下四个部分: C:包括区块、语句、预处理器、内置数据类型、数组、指针等,但是C语言本身存在局限:没有模板template、没有异常exception、没有重载overloading……. Object-oriented C++: 这部分主要... 阅读全文
posted @ 2013-07-29 10:55 jiayouwyhit 阅读(295) 评论(0) 推荐(0)
摘要:1. 导读部分 (1) default 构造函数是一个可以被调用而不用带任何实参的函数。这样的构造函数要么就是没有参数,要么就是每个参数都有缺省值。 (2)关于explicit关键字 该关键字用于申明构造函数之前,主要是为了禁止构造函数被用于隐式类型转换,比如上文例子中的doSomething(28). 但是这个并不是说进行显式类型转换,例如doSomething(B(28))。... 阅读全文
posted @ 2013-07-28 15:45 jiayouwyhit 阅读(265) 评论(0) 推荐(0)
摘要:分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student //注意,此处的student可以省略 { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) ... 阅读全文
posted @ 2013-07-26 15:58 jiayouwyhit 阅读(234) 评论(0) 推荐(0)
摘要:希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔... 阅读全文
posted @ 2013-07-25 19:51 jiayouwyhit 阅读(226) 评论(0) 推荐(0)
摘要:直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。 1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1 2. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。 3. i++... 阅读全文
posted @ 2013-07-25 16:16 jiayouwyhit 阅读(473) 评论(0) 推荐(0)
摘要:已经在VC6下运行过。 //堆排序 //默认非叶子节点i以下的节点都已经排好次序,已经成为排好次序的最大/小堆 void HeapAdjust(int* source, int s, int t) { int temp,j; temp=source[s]; for (j=2*s+1;j=source[j]) ... 阅读全文
posted @ 2013-07-25 13:59 jiayouwyhit 阅读(240) 评论(0) 推荐(0)
摘要:版本一:参考《大话数据结构》中的代码实现。 #define MAXSIZE 10 void merging(int* source,int* result, int start, int middle, int end) { int i,j,k; k=start,i=start,j=middle+1; while(i<=mid... 阅读全文
posted @ 2013-07-24 19:37 jiayouwyhit 阅读(259) 评论(0) 推荐(0)
摘要:我刚装就发现winedt打开一些.tex文件时会出现reading error,然后看不到任何文字(网上有人讨论打开是乱码的问题,但是我的是完全看不到任何东西),我的系统winxp,网上有人说好像是和那个utf-8编码有关,因为utf-8的文件都打不开的,但本人无从知晓是否与utf-8编码有关。 但是本人猜测,打不开的文件应该是和文件的编码或者winedt本身有关系。因为本人先用Mikte... 阅读全文
posted @ 2013-07-15 16:09 jiayouwyhit 阅读(11254) 评论(1) 推荐(0)
摘要:好用的网上在线转,使用的sam2p 可以方便地将jpg或jpeg转为eps,pdf http://www.tlhiv.org/rast2vec/ windows下.jpg转.eps for latex的另一便捷方式:在装了latex的机子上,可以从MiKTex的目录下找到bmeps的应用文件。 含有 latex自己的bitmap to eps converter. 在DOS下,进入.jpg图片... 阅读全文
posted @ 2013-07-14 20:49 jiayouwyhit 阅读(1242) 评论(1) 推荐(0)
摘要:补充:typedef和#define的区别 相同点:都可以为某一个数据类型创建一个自己喜欢的名字,如: # define UNCHAR unsigned char 等同于 typedef unsigned char UNCHAR;(注意,有分号) 不同点: (1)typedef给出的符号名仅限于对类型,而不是对值,而#define可以对值; (2)typedef的解释由编译器,#defi... 阅读全文
posted @ 2013-07-13 16:34 jiayouwyhit 阅读(362) 评论(0) 推荐(0)
摘要:在 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明进行了详细说明。本文主要针对如何用EM算法在混合高斯模型下进行聚类进行代码上的分析说明。 1. GMM模型: 每个 GMM 由 K 个 Gaussian 分布组成,每个 Gaussian 称为一... 阅读全文
posted @ 2013-07-05 10:11 jiayouwyhit 阅读(517) 评论(0) 推荐(1)