算法

平面图的基本概念及性质

平面图的基本概念及性质 一、基本概念平面图:设无向图G,若能将G画在一个平面上,使得任何两条边仅在顶点处相交,则称G是具有平面性质的图,简称平面图,否则称G是非平面图。在平面图G中,G的边将其所在的平面划分成的区域称为面,有……

置换和排列的区别?

置换和排列的区别?一、置换一个有限集合S到自身的双射(即一一对应)称为S的一个置换。集合上的置换可以表示为意为将映射为,其中是1,2,…,n的一个排列。显然S上所有置换的数量为n!。乘法对于两个置换和,f……

结合实例解析深度优先搜索(DFS)搜索

结合实例解析深度优先搜索(DFS)搜索当你从一个顶点开始,沿着某条路往下走,一直走到底,如果走完后发现不能达到目标解,就回溯,返回到上一个节点,换条路,然后继续走到底,如此往复,直至所有可能的结果都被搜索完。通俗理解就是不撞南墙不回头这种……

在线算法和离线算法的区别

在线算法和离线算法的区别本章浅谈一下在线算法,当然,说到在线算法会想到离线算法,这两个概念都会提到,帮助大家理解。(一)在线算法在计算机科学中,一个在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已……

折半查找(二分查找)介绍与实现

折半查找(二分查找)介绍与实现1.算法简介二分查找也称折半查找(BinarySearch),多数的人喜欢叫他二分查找。它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列,注意必须……

哈希算法实例详解

哈希算法实例详解1.什么是哈希Hash,一般翻译做散列、杂凑,或音译为哈希,是一个典型的利用空间换取时间的算法,把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。如……

回溯法经典例题分析

回溯法经典例题分析回溯法在我们解题步骤中经常被提到,这也是一种常用的方法,回溯法是一种经常被用在深度优先搜索(DFS)和广度优先搜索(BFS)的技巧。其本质是:走不通就回头。本篇将结合经典例题帮助大家对回溯法的理解。一……

插入排序算法C/C++代码图文讲解

插入排序算法C/C++代码图文讲解插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于……

C语言标准库中的字符串

C语言标准库中的字符串一、字符串操作<string.h>size_tstrlen(charconst*s);注意:返回值类型size_t是无符号类型,和int进行运算或比较时需要注意;char*……

C++STL之Map容器

C++STL之Map容器1.简介Map也是一种关联容器,它是键—值对的集合,即它的存储都是以一对键和值进行存储的,Map通常也可以理解为关联数组(associativearray),就是每一个值都有一个键与值一一……