希尔排序算法C/C++代码图文讲解 希尔排序又称“缩小增量排序”,是插入排序的一种。直接插人排序,当待排序的记录个数较少且待排序序列的关键字基本有序时,效率较高。希尔排序基于以上两点,从“减少记录个数”和“序列基本有序”两个方面对直接插入排序进行了改进。(1)步骤:1.先选定一个小于N的整数gap作为第一增量, 排序算法 2022年03月11日 80 点赞 0 评论 116748 浏览
KMP算法与前缀函数实例讲解 KMP算法与前缀函数(一)前缀函数一个字符串s的border是一个最长的字符串,且既是s的后缀,又是s的真前缀。给定长为n的字符串s,其前缀函数定义为一个长为n的数组π。其中π[i]为s的第i个前缀的border长度。(二)KMP算法全称为Knuth-Morris-Pratt算法, 字符串相关 2022年01月06日 241 点赞 0 评论 83298 浏览
C++字符串常用操作(二) 1.字符串连接操作顾名思义,即将一个字符串链接到另一个字符串的尾部,我们可以创建一个函数,同时利用指针,分别先后全部遍历两个字符串,将其中一个字符串的结束符’\0’去除并链接另一个字符串直到遇到结束符’\0’即可,函数实现为:#include<stdio.h>char*_strcat(chardest 串、数组、矩阵和广义表 2022年03月28日 124 点赞 0 评论 74766 浏览
最小生成树,普利姆(Prim)算法及C/C++代码实现 1.最小生成树(又名:最小权重生成树)概念:将给出的所有点连接起来(即从一个点可到任意一个点),且连接路径之和最小的图叫最小生成树。最小生成树属于一种树形结构(树形结构是一种特殊的图),或者说是直链型结构,因为当n个点相连,且路径和最短,那么将它们相连的路一定是n-1条。 图 2022年03月24日 191 点赞 0 评论 195006 浏览
浅谈表达式求值 说到表达式求值问题,相信很多人都是迷茫或者不知道该如何下手去解决问题。首先要知道什么是表达式求值?可以解决什么问题?通过看了表达式求值的一系列题目得知,要解决的问题一般是输入一个字符串表示的表达式,要求输出它的值。当然也有变种比如表达式中是否包含括号, 其他算法 2022年02月26日 194 点赞 0 评论 90891 浏览
二分图的定义和判定 二分图是图论当中很重要的一个板块,由二分图的匹配与带权匹配可以推广出一般图的匹配与带权匹配。本篇主要会讲到二分图的定义、性质、判定。一、定义二分图,又称二部图,英文名叫Bipartitegraph,是图论中的一种特殊模型。二分图是什么?节点由两个集合组成,且两个集合内部没有边的图。 图论 2022年05月16日 235 点赞 0 评论 109700 浏览
动态规划DP算法详解 1.简介动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程(decisionprocess)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistepdecisionprocess)的优化问题时, 算法和竞赛 2022年02月15日 67 点赞 0 评论 101894 浏览
什么是树的重心? 一、树的重心树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。通俗点讲,就是在树中去掉一个点,删除这个点后,最大连通块(一定是树)的结点数最小。举个例子:对于一颗n个节点的无根树, 图论 2022年01月25日 200 点赞 0 评论 104950 浏览
用C语言解答汉诺塔问题 汉诺塔相信很多人小时候都玩过这样的游戏,这是源于印度的古老传说,大家可千万不要小看这个游戏,里面体现了古人的大智慧,在这里我们能学到最直观的演示方法,本篇主要是针对汉诺塔的问题进行分析和代码展示。一、前言汉诺塔,又称河内塔,是一个益智玩具。大梵天创造世界的时候做了三根金刚石柱子, 算法基础 2022年01月28日 191 点赞 0 评论 121435 浏览
三维计算几何基础 本篇内容是围绕着三维计算几何展开,三维几何的很多概念和知识与二维几何是想通的,所以在我们做三维几何问题的时候,可以采用解决二维几何问题相同的方法来解决。其中点,向量,直线等概念和二维几何相似,就不再重复介绍了。平面我们可以用平面上的一点和该平面的法向量(即垂直于该平面的向量)n来表示一个平面。 计算几何 2022年01月10日 74 点赞 0 评论 65402 浏览