算法

线性(顺序)查找介绍与实现

线性(顺序)查找介绍与实现1.查找算法查找算法是指:从一些数据之中,找到一个特殊的数据的实现方法。查找算法与遍历有极高的相似性,唯一的不同就是查找算法可能并不一定会将每一个数据都进行访问,有些查找算法如二分查找等,并不需要完全……

C++STL之Queue容器

C++STL之Queue容器1.再谈队列回顾一下之前所学的队列,队列和栈不同,队列是一种先进先出的数据结构,STL的队列内容极其重要,虽然内容较少但是请务必掌握,STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。……

二叉树及分类介绍

二叉树及分类介绍1.二叉树简介二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。如图如图,每一个结点中最多拥……

C++STL之Pair类模板

C++STL之Pair类模板1.简介Pair表示“一对”的意思,pair将两个数据合成一组数据,在如下两种变成情况中,我们更加常见与使用pair,第一是使用STL中的map(在上一节讲过),对于map而言……

离散化算法实例讲解

离散化算法实例讲解说到离散化,可能很多人不知道这是什么,小编简单给大家介绍一下,后面会详细说明,离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可……

图论中的有向无环图

图论中的有向无环图在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均……

栈的定义和特点

栈的定义和特点数据结构的重要部分,栈,栈是OI中常用的一种线性数据结构,请注意,本文主要讲的是栈这种数据结构,而非程序运行时的系统栈/栈空间,大家一定要弄清晰,别混淆了。栈的定义和特点栈(stack)是一个特殊的线……

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

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

结合实例解析双向搜索

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

各种排序算法总结

各种排序算法总结1. 排序汇总 类别排序方法时间复杂度空间复杂度稳定性平均情况最好情况最坏情况插入排序直接插入O(n^2)O(n)O(n^2)O(1)稳定希尔排序O(n^2)O(n……