摘要: 阅读全文
posted @ 2015-05-06 17:49 无天666 阅读(154) 评论(0) 推荐(0)
摘要: public class BubbleSort{ public static void main(String args[]){ int[] values={3,1,6,2,9,1,6,2,9,0,7,4,5}; sort(values); for(int i=0;ivalues... 阅读全文
posted @ 2015-05-06 17:40 无天666 阅读(360) 评论(0) 推荐(0)
摘要: 终于来到了算法设计思想中最有趣的这部分,在去年的google笔试中,7道算法设计题有2道动态规划(Dynamic Programming)。看了这么久的算法,这部分也是唯一感觉到了比较难的地方,从这篇文章开始,将花连续的篇幅来讨论一些对动态规划的认识和其中的问题。这包括一些例子:计算二项式系数,Wa... 阅读全文
posted @ 2015-05-06 16:50 无天666 阅读(534) 评论(0) 推荐(0)
摘要: 问题描述:假设有N个小孩按照序号1,2,,,N围坐成一圈,从第一个小孩开始报数,每次报到n的人退出,接着从下一个人重新开始从1开始报数,下一次再报到n的人退出,求最后一个留下的人;数组实现:public class huan { /** * @param args */ ... 阅读全文
posted @ 2015-05-06 10:25 无天666 阅读(262) 评论(0) 推荐(0)
摘要: 1 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 归纳法例子 1.有n个硬币(n为偶数)正面朝上排成一排,每次将n-1个硬币翻成朝上为止。编程让计算机把翻硬币的最简过程及翻币次数打印出来(用*代表正面,用0代表反面)。基本形式:D[1]=0;d[2]=... 阅读全文
posted @ 2015-05-05 22:49 无天666 阅读(219) 评论(0) 推荐(0)
摘要: 沿着所有方向进行探测,有路径则走,没有路径则从栈中回退。回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达一个新点,否则试探下一个方向;若所有的方向均没有通路,则沿原路返回前一点,换下一个方向继续试探,... 阅读全文
posted @ 2015-05-05 16:43 无天666 阅读(5716) 评论(0) 推荐(0)
摘要: public static void mergSort(Comparable[] data,int min,int max){ int mid = (min + max)/2; //递归的过程 if(max > min){ mergSort(data,min,mid); mergSort(dat... 阅读全文
posted @ 2015-05-04 20:51 无天666 阅读(246) 评论(0) 推荐(0)
摘要: 1,快速排序快速排序通过分割值列,然后递归的对两个部分进行排序,从而实现对值列的排序。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序首先任意选取一个数据(通常选用第一个数据)作为关键数据,... 阅读全文
posted @ 2015-05-04 17:44 无天666 阅读(305) 评论(0) 推荐(0)
摘要: 问题描述:给定n个矩阵(A1,A2,A3.....An},其中Ai与Ai+1是可乘的,i=1,2,...n-1。考察n个矩阵的连乘积A1A2A3,....An。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序,这种计算次序可以用加括号的方式来确定。加括号的方式决定了整个计算量(指的... 阅读全文
posted @ 2015-05-04 16:20 无天666 阅读(9179) 评论(0) 推荐(0)
摘要: 最优二叉查找树的一道思考习题同最优二叉查找树一样,矩阵连乘问题也是一个卡特兰数问题(其动态规划的构造过程都很像)分析解答:a,铺垫的数学知识首先要搞清楚矩阵相乘是怎么乘的:1)对于连续的n个矩阵相乘 A1 * A2 *A3.........An,其乘法顺序可以是任意的,可以在上面加括号,改变做乘法的... 阅读全文
posted @ 2015-04-29 16:08 无天666 阅读(619) 评论(0) 推荐(0)