最短路径,弗洛伊德(Floyd)算法及C/C++代码实现 1.算法简介弗洛伊德算法与迪杰斯特拉算法是公认的最著名的两种最短路径求解算法,接下来介绍弗洛伊德算法,弗洛伊德算法的思路是:首先初始化距离矩阵,然后从第一个点开始逐渐更新矩阵点值。d[i][j]表示从i点到j点的距离。第k次更新时,判断d[i][k]+d[k][j]与d[i][j]的大小, 图 2022年05月27日 71 点赞 0 评论 100474 浏览
Alpha-Beta剪枝搜索图文讲解 本篇将简要介绍α-β剪枝,这是一种基于剪枝(α-βcut-off)的深度优先搜索(depth-firstsearch)。一、什么是α剪枝?(1)将走棋方定为MAX方,因为它选择着法时总是对其子节点的评估值取极大值,即选择对自己最为有利的着法;(2)将应对方定为MIN方, 搜索算法 2022年01月25日 118 点赞 0 评论 100381 浏览
计数排序算法C/C++代码图文讲解 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。(1)算法的步骤:1.找出待排序的数组中最大和最小的元素2.统计数组中每个值为i的元素出现的次数, 排序算法 2022年01月13日 71 点赞 0 评论 100261 浏览
图文解析图论BFS(广度优先搜索) BFS全称是BreadthFirstSearch,中文名是宽度优先搜索,也叫广度优先搜索。是图上最基础、最重要的搜索算法之一。所谓宽度优先。就是每次都尝试访问同一层的节点。如果同一层都访问完了,再访问下一层。这样做的结果是,BFS算法找到的路径是从起点开始的最短合法路径。 图论 2022年04月11日 112 点赞 0 评论 100070 浏览
分治算法概念与实例讲解 本篇主要是围绕着分治算法的概念、思想、策略以及步骤四个方向叙述,同时通过汉诺塔游戏的讲解,促进大家对分治算法的理解。一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题, 算法基础 2022年05月09日 227 点赞 0 评论 99823 浏览
Python枚举算法 本章我们进入算法的学习,我们会通过比较经典的例题去讲解一些常用的算法思想,常用的算法思想包括:枚举、递归、分治、贪心、试探、动态迭代和模拟等,本节我们来学习一下枚举算法。1.枚举思想枚举算法我们也称之为穷举算法,这种算法就是在解决问题的时候去使用所有的方式去解决这个问题, Python算法 2022年02月21日 176 点赞 0 评论 99097 浏览
三角剖分的定义和应用 什么是三角剖分?在几何中,三角剖分是指将平面对象细分为三角形,并且通过扩展将高维几何对象细分为单纯形。对于一个给定的点集,有很多种三角剖分,如:OI中的三角剖分主要指二维几何中的完美三角剖分(二维Delaunay三角剖分,简称DT)。这个算法本身也不容易, 计算几何 2022年03月18日 73 点赞 0 评论 99043 浏览
什么是凸包? 凸包(ConvexHull)是一个计算几何(图形学)中的概念。在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的线性组合来构造.在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。 计算几何 2022年01月25日 203 点赞 0 评论 98680 浏览
高精度计算的应用 什么是高精度算法?它是处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数。但近几年的CSPJ/S复赛貌似从未单独考过高精度算法,但有时会和其他算法一起考。 数学相关 2022年04月20日 106 点赞 0 评论 98673 浏览
矩阵扩展-算卷积算法介绍及C语言代码实现 1.矩阵扩展算法——简单的算卷积接着上文,矩阵进行更深入的学习就需要学习更多的处理了,矩阵被运用在很多的领域,这里简单以计算机图形处理的重要概念——卷积,为例进行说明:卷积。用一个模板去和另一个图片对比,进行卷积运算。目的是使目标与目标之间的差距变得更大。 串、数组、矩阵和广义表 2022年03月03日 150 点赞 0 评论 97849 浏览