算法分析
主要分析各类算法
阿斯兰FAJ
生如夏花般灿烂,死如秋叶般静美。
展开
-
n后问题
n后问题一、 问题描述在n×n格的棋盘上放置彼此不受攻击的n个皇后,按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子,请输出皇后的位置以及对应皇后的解法个数。分析:理解皇后不被攻击的条件:n后问题等价于在n*n格的棋盘上放置n个皇后,任何两个皇后不能放在同一行或同一列或同一斜线上。算法模块简要分析。用数组存储皇后的位置,将i设置为0。Int place(*x,n) :数组x[] 用来表示列数,n为皇后个数,用来判断皇后 否被攻击,判断的条件是(x[i]-x原创 2020-11-10 20:06:44 · 1400 阅读 · 0 评论 -
单源最短路径问题
单源最短路径问题一、问题描述如果存在一条从i到j的最短路径(Vi…Vk,Vj),Vk是Vj前面的一顶点。那么(Vi…Vk)也必定是从i到k的最短路径,求出最短路径。分析:单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。该性质描述为:如果P(i,j)={Vi…Vk…Vs…Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k到s的最短路径。下面证明该性质的正确性。假设P原创 2020-11-10 19:57:24 · 4050 阅读 · 1 评论 -
算法分析之矩阵连乘问题
算法分析之矩阵连乘问题一,问题描述给定n个矩阵{A1,A2,…,An},其中,Ai与Ai+1是可乘的,(i=1,2 ,…,n-1)。不同的计算次序计算量(乘法次数)是不同的,要求通过输入矩阵的个数和每个矩阵的规模大小,从而确定矩阵连乘积的计算次序和最少数乘次数使得矩阵连乘的次数最小。分析:矩阵连乘的条件:第一个矩阵的列等于第二个矩阵的行,此时两个矩阵是可乘的;多个矩阵连乘的结果矩阵,其行列等于第一个矩阵的行和最后一个矩阵的列;两个矩阵相乘的计算量:例如:可知总执行次数为:324=24.所以原创 2020-09-19 18:52:42 · 3658 阅读 · 0 评论 -
算法分析之棋盘覆盖问题
算法分析之棋盘覆盖问题一,问题描述在一个2k×2k个方格组成的棋盘中,有一个方格与其它的不同,使用四种L型骨牌覆盖除这个特殊方格的其它方格,请使用分治法实现棋盘覆盖<1>分析:四个L型骨牌如下图:棋盘覆盖问题是指,要用图2中的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。用分治法设计一个求解棋盘覆盖问题的算法,并且用c++语言实现。首先明确 要使用分制的思想。(1) 把棋盘等分成四个正方形分别是:左上、左下、右上、右下 四个子原创 2020-09-18 18:59:05 · 1742 阅读 · 0 评论