算法

结合实例解析双向搜索

本篇将会结合实例解析双向搜索。一、双向搜索当给出了起点状态与终点状态时,使用普通的搜索从起点向下搜索,则效率会很低,搜索树会非常庞大;所以,可以使用双向搜索,及从起点与终点同时向中间搜索,搜索到同一个状态时,将从起点与终点搜索的值相加得到最终值的搜索;一般给出“始态”与“终态”时,

半平面交的定义和解法

一、定义半平面交是什么?我们知道一条直线可以把平面分为两部分,其中一半的平面就叫半平面。那半平面交,就是多个半平面的相交部分。我们在学习线性规划时就有用过。(1)半平面一条直线和直线的一侧。半平面是一个点集,因此是一条直线和直线的一侧构成的点集。

结合实例浅析构造题型

什么是构造?大家在日常做题中应该遇到过,构造题这一种题型,而且还是比赛中常见的一类题型。本篇将简要介绍构造题这类题型以及两个实例的展示。一、什么是构造?构造题是一种题型,而且还是比赛中常见的一类题型。不同于其它的算法、数据结垢题,根据查询输出结果;构造题是让你给出一组方案,使得在一定限制内符合条件。

递归算法概念与实例讲解

本篇主要是围绕着递归算法的概念、实质、思想以及设计要素四个方向叙述,同时通过实例讲解,促进大家对递归算法的理解。一、算法概念递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。二、算法实质递归算法就是将原问题不断分解为规模缩小的子问题,然后递归调用方法来表示问题的解。

简述随机化算法

本篇将主要讲解随机化算法,在正式进入主题之前,我们先谈谈什么是随机化?随机化是一种可能影响试验结果的无关或可能在试验过程中变化,从而影响到最终结果。随机化算法,是在算法中使用了随机函数,且随机函数的返回值直接或间接的影响了算法的执行流程或结果。

常用的双指针技巧

什么是双指针?其实很好理解,双指针是一种思想,一种技巧或一种方法,并不是什么特别具体的算法,在二分查找等算法中经常用到这个技巧。具体就是用两个变量动态存储两个或多个结点,来方便我们进行一些操作。通常用在线性的数据结构中,比如链表和数组,有时候也会用在图算法中。

广义表的创建及C语言代码实现

1.广义表的创建如图所示,广义表的每一个结点相互串联,有些结点存储原子数据,有些结点则存储另一份广义表数据,我们创建数据stringss="(2,3,4,(1,(3,(7,8)),2))";其基本可以分成4层,每一个层中一个括号表示下一层,在数学表示中,我们也常用括号的级数表示广义表。

参考及相关链接

参考目录:《大话数据结构》程杰著《数据结构与算法》小黑书,C语言版本《算法与数据结构》小黑书,JAVA版本互联网搜索引擎如百度和谷歌CSDNStack论坛在基本完成数据结构的学习,你应该可以做到:1.完全自由的写出链表,以及基本的操作方法和进阶,

傅里叶-莫茨金消元法的应用

傅里叶-莫茨金消元法的英文名:Fourier-MotzkinElimination,简称FME算法,它是一种用于从线性不等式中消除变量的数学方法。它的命名源自于在1827年和1936年独立发现该算法的JosephFourier和TheodoreMotzkin的姓氏。

C++STL之multiset与multimap容器

1.MultisetMultiset是set集合容器的一种,其拥有set的全部内容,在此基础之上,multiset还具备了可以重复保存元素的功能,因此会有略微和set的差别。Multise容器在执行insert()时,只要数据不是非法数据和空数据,