算法分析
梁山伯liangrx06
热爱学习研究算法
展开
-
对最小生成树和最短路径相关算法的简要总结
最小生成树和最短路径都是图论中比较基本的内容,我最开始在大学接触时感觉懵懵懂懂的,后来工作之后重新看算法相关的东西算是都会编代码了,但知道最近我重新把相关的内容深入学习了一遍才感觉把原理性的东西也弄明白了。当然,我所说的弄明白了只是最基本的内容。以下只说我理解之后的干货,至于每个算法的详细及通俗介绍,网上一搜一大片,我没必要在这里重复讲了。一、两类基本问题1.干什么用的最小生成树是在连通图...原创 2020-05-02 00:44:30 · 1085 阅读 · 0 评论 -
N皇后问题算法
N皇后问题的两种主要算法是试探回溯法和位运算法。前一种是经典算法,后一种是目前公认的最高效算法,后者比前者效率提高了至少一个数量级。很多问题可以借鉴位运算的思想。以下是转载的我认为写的比较好的一篇N皇后问题算法分析。转载地址:http://blog.csdn.net/hackbuteer1/article/details/6657109 N皇后问题是一个经典的转载 2015-10-24 13:43:05 · 2841 阅读 · 1 评论 -
数论——最大公约数和最小公倍数算法
求最小公倍数要用到最大公约数,最小公倍数=两整数的乘积÷最大公约数。因此,两种数的求法都归结于最大公约数求法。最大公约数的求法有三种:(1)辗转相除法(2)辗转相减法(3)穷举法。分别适合于不同情境。=====以下为转载内容=====转载地址:http://blog.csdn.net/iwm_next/article/details/7450424求最大公约数算转载 2015-10-24 16:28:09 · 1023 阅读 · 0 评论 -
数论——素数算法
素数,也叫质数,素数算法在解决实际问题乃至ACM竞赛中经常能够用到,在笔者研究这个问题之前,对素数算法的理解仅能达到从1到sqrt(n)除n判断是否是素数的水平。然而研究素数算法后发现,素数算法可说博大精深,有很多层境界。。。基本的素数问题有以下三种:1、判断n是不是素数;2、求不小于n的所有质数;3、求自然数中最小的n个质数。问题1的求法:1.1 从1原创 2015-10-24 21:53:16 · 646 阅读 · 0 评论 -
双向广度优先搜索算法框架
双向广度优先搜索算法是对广度优先算法的一种扩展。广度优先算法从起始节点以广度优先的顺序不断扩展,直到遇到目的节点;而双向广度优先算法从两个方向以广度优先的顺序同时扩展,一个是从起始节点开始扩展,另一个是从目的节点扩展,直到一个扩展队列中出现另外一个队列中已经扩展的节点,也就相当于两个扩展方向出现了交点,那么可以认为我们找到了一条路径。双向广度优先算法相对于广度优先算法来说,转载 2016-02-13 14:55:19 · 6802 阅读 · 2 评论 -
矩阵相乘优化算法实现讲解
矩阵相乘什么是矩阵?在数学中,矩阵(Matrix)是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。并且在ACM竞赛,有很多涉及到矩阵知识的题。许多算法都会结合矩阵来处理,而比较具有代表性的矩阵算法有:矩阵快速幂、高斯消元等等。例如下面的图片转载 2016-03-07 15:54:35 · 1191 阅读 · 0 评论 -
矩阵连乘问题的算法分析
问题描述:给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。 问题解析:由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。转载 2016-03-07 16:56:04 · 17065 阅读 · 0 评论 -
各类排序算法的比较总结
排序算法是最基本最常用的算法,不同的排序算法在不同的场景或应用中会有不同的表现,我们需要对各种排序算法熟练才能将它们应用到实际当中,才能更好地发挥它们的优势。今天,来总结下各种排序算法。下面这个表格总结了各种排序算法的复杂度与稳定性: 各种排序算法复杂度比较.png冒泡排序冒泡排序可谓是最经典的排序算法了,它是基于比较的排序算法,时间复杂度为O(n^2),其优点是实现简单,n较小时性能较好。算转载 2016-03-08 20:51:48 · 721 阅读 · 0 评论 -
KMP算法详解
kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现讲清楚。kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是转载 2016-05-01 18:45:00 · 518 阅读 · 0 评论