克鲁斯卡尔算法图文详解
连通图中寻找最小生成树的常用算法有2种,分别是普里姆算法和克鲁斯卡尔算法。本节,我们将带您详细了解克鲁斯卡尔算法。和普里姆算法类似,克鲁斯卡尔算法的实现过程也采用了贪心的策略:对于具有...普里姆算法图文详解
普里姆算法用于在连通图中寻找最小生成树,该算法的实现采用了贪心的策略。连通图指的是各个顶点之间至少存在一条通路的无向图。 对于给定的连通图,普里姆算法寻找最小生成树的过程是: 将图中...- 0
- 0
- 0
- 0
- 0
最小生成树算法图文详解
讲解最小生成树之前,您需要先了解什么是生成树。生成树 数据结构中,根据数据之间关系的复杂程度,可以选用线性表、树和图这3种存储结构来有效地存储数据。其中,树和图最大的区别在于:图结构中可...- 0
- 0
- 0
- 0
- 0
哈希查找算法图文详解
哈希查找算法又称散列查找算法,是一种在哈希表中查找目标元素的算法。哈希表 哈希表又称散列表,是一种以关联方式存储数据的存储结构。所谓关联方式,哈希表将所有数据集中存储在一整块内存空间...- 0
- 0
- 0
- 0
- 0
插值查找算法图文详解
插值查找算法又称插值搜索算法,是二分查找算法的改进版。和二分查找算法相同,插值查找算法也仅适用于有序序列。此外,当有序序列中的元素呈现均匀分布时,插值查找算法的执行效率比二分查找算法...- 0
- 0
- 0
- 0
- 0
二分查找算法(折半查找算法)图文详解
二分查找又称折半查找,是一种基于分治思想的快速搜索算法,时间复杂度为O(logn)。二分查找算法只适用于有序序列,换句话说,只有保证序列有序的情况下,才能使用二分查找算法。二分查找算法的基本...- 0
- 0
- 0
- 0
- 0
顺序查找算法图文详解
顺序查找(又称顺序搜索、线性搜索等)是所有查找算法中最基本、最简单的一种算法,该算法的时间复杂度为O(n)。顺序查找算法既支持在有序序列中查找目标元素,也支持在无序序列中查找目标元素,该算...- 0
- 0
- 0
- 0
- 0
稳定排序算法图文详解
当待排序序列中含有相同元素时,如果排序算法完成排序的同时,能保证相同元素的相对位置不发生改变,我们可以说这个排序算法是稳定的,或者说该排序算法是一个稳定排序算法。举个例子,假设待排序...- 0
- 0
- 0
- 0
- 0
桶排序算法图文详解
本节您将系统学习桶排序算法,还会看到实现桶排序算法的C、Java以及Python程序。桶排序算法的核心思想是:将待排序序列中的元素根据规则分组,每一组采用快排、插入排序等算法完成排序,然后再将所...- 0
- 0
- 0
- 0
- 0
基数排序算法图文详解
本节您将系统学习基数排序算法,还会看到实现基数排序算法的C、Java以及Python程序。阅读本文前,请您先学习计数排序算法,因为基数排序算法的实现会用到计数排序算法。 基数排序算法适用于对包含...- 0
- 0
- 0
- 0
- 0
计数排序算法图文详解
本节您将学习计数排序算法的工作原理,还会看到实现计数排序算法的C、Java以及Python程序。计数排序算法是一种通过统计待排序序列中各个不同元素的出现次数,从而实现对整个序列进行排序的算法。...- 0
- 0
- 0
- 0
- 0
快速排序算法图文详解
快速排序(简称“快排”)是一种基于分治思想实现的排序算法,它具有排序效率高、消耗资源少、容易实现等优点,是很多实际场景的首选排序算法。快速排序算法的基本原理 对于给定的待排序序列,快速排...- 0
- 0
- 0
- 0
- 0
归并排序算法图文详解
归并排序是一种基于分治思想的排序算法,时间复杂度为O(nlogn),效率仅次于快速排序算法。归并排序算法的基本原理 下面我们以对序列{7,5,2,4,1,6,3,0}进行升序排序为例,给您讲解归并排序算法的...- 0
- 0
- 0
- 0
- 0
希尔排序算法图文详解
希尔排序又称缩小增量排序,是一种比插入排序更高效的排序算法,可以看做是插入排序算法的“改良版”。希尔排序算法的整个排序过程分为如下几步: 将待排序序列划分为多个子序列,对每个子序列使用...- 0
- 0
- 0
- 0
- 0
选择排序算法图文详解
选择排序是一种比较简单的排序算法,可以对待排序序列实现升序或降序排序,常用于数据量较少的场景。选择排序算法的实现原理和冒泡排序算法类似,通过不断地比较两个相邻元素的值,找出待排序序列...- 0
- 0
- 0
- 0
- 0
插入排序算法图文详解
插入排序是一种非常简单的排序算法,它可以对序列完成升序(由小到大)或降序(由大到小)排序。插入排序算法的核心思想是:始终维护一个有序的子序列,并不断将其它待排序的元素插入到这个有序序列...- 0
- 0
- 0
- 0
- 0
冒泡排序算法图文详解
冒泡排序又称起泡排序,是最容易实现的一种排序算法,时间复杂度为O(n2)。冒泡排序算法的工作原理是:反复遍历待排序的目标序列,过程中不断比较相邻元素的值,对于违背升序或降序规则的相邻元素,...- 0
- 0
- 0
- 0
- 0
N皇后问题图文详解
在国际象棋中,皇后是整个棋盘上实力最强的一种棋子,可以直走、横走和斜着走(沿45°角移动),可以攻击行走路线上的任何棋子。N皇后问题就源自国际象棋,它研究的是:如何将N个皇后摆放在N*N的棋盘中...- 0
- 0
- 0
- 0
- 0
迷宫问题图文详解
假设有一个N*N的正方形迷宫(如图1所示),老鼠必须从起始点移动到终点,它可以向上、向下、向左、向右移动,但仅限于在白色区域内移动。 图1N*N迷宫 回溯算法可以很好地解决类似的迷宫问题,该算法...- 0
- 0
- 0
- 0
- 0