离散化算法实例讲解 说到离散化,可能很多人不知道这是什么,小编简单给大家介绍一下,后面会详细说明,离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。 其他算法 2022年03月12日 102 点赞 0 评论 87331 浏览
最小生成树,普利姆(Prim)算法及C/C++代码实现 1.最小生成树(又名:最小权重生成树)概念:将给出的所有点连接起来(即从一个点可到任意一个点),且连接路径之和最小的图叫最小生成树。最小生成树属于一种树形结构(树形结构是一种特殊的图),或者说是直链型结构,因为当n个点相连,且路径和最短,那么将它们相连的路一定是n-1条。 图 2022年03月24日 191 点赞 0 评论 195006 浏览
哈密顿图的应用 哈密顿通路(回路)与哈密顿图(Hamilton图)通过图G的每个结点一次,且仅一次的通路(回路),就是哈密顿通路(回路)。下面总结四个定义,帮助大家理解。一、哈密顿图定义通过图中所有顶点一次且仅一次的通路称为哈密顿通路。通过图中所有顶点一次且仅一次的回路称为哈密顿回路。 图论 2022年02月21日 195 点赞 0 评论 80019 浏览
超详细背包DP九讲(算法分析+问题分析+代码分析) P01:01背包问题题目:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路:这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 动态规划 2022年02月28日 136 点赞 0 评论 84900 浏览
什么是启发式搜索? 本篇将会结合实例解析启发式搜索,帮助大家更好理解。启发式搜索(英文:heuristicsearch)是一种改进的搜索算法。它在普通搜索算法的基础上引入了启发式函数,该函数的作用是基于已有的信息对搜索的每一个分支选择都做估价,进而选择分支。简单来说, 搜索算法 2022年04月19日 78 点赞 0 评论 122065 浏览
直接插入排序算法实例详解 1.复杂度与稳定性最坏情况:O(N^2)最好情况:O(N^2)平均情况:O(N^2)稳定性:稳定排序2.过程介绍直接插入排序是把新的数据插入以及排序好的数列中,排序的基本方法是:每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。 排序算法 2022年03月26日 127 点赞 0 评论 126570 浏览
DP优化(一)单调队列/单调栈优化实例讲解 一、什么是单调栈和单调队列?(1)单调栈从名字上就听的出来,单调栈中存放的数据应该是严格单调有序的,具有以下两个性质。1.满足从栈顶到栈底的元素具有严格的单调递增或单调递减性;2.满足栈的后进先出特性,即越靠近栈底的元素越早进栈。单调栈也分为单调递增栈和单调递减栈。 动态规划 2022年05月04日 201 点赞 0 评论 128386 浏览
排序算法在日常的应用 说到排序算法,它是计算机技术中最基本使用率最高的算法,需要非常复杂的算法都会用到排序,所以了解排序算法的思想和原理,对于编写软件非常重要。“工欲善其事必先利其器。”想要利用好排序算法,就必须对它有足够深刻的了解,才能在编写中用好。从计算机算法角度来分析, 排序算法 2022年04月27日 51 点赞 0 评论 110516 浏览
C++STL之Set容器 1.简介Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会明白原因),其属于一种非线性的数据结构,每一次插入数据都会自动进行排序, C++STL库教程(附带题库) 2022年04月13日 151 点赞 0 评论 118261 浏览
字符串匹配实例讲解 本篇主要讲字符串匹配以及字符串算法中三个主要算法的一些内容,帮助大家理解。一、基本概念字符串匹配问题假设文本是一个长度为n的数组T[1…n],而模式是一个长度为m的数组P[1…m],其中m≤n,进一步假设P和T的元素都是来自一个有限的字母集∑的字符。 字符串相关 2022年01月25日 213 点赞 0 评论 91934 浏览