首页 二次元 正文

算法图解&gt &lt (长沙麻将打法和算法图解)

二次元 2024-09-07 343

本文目录导航:

二分查找、大O剖析法;数组和链表;递归、极速排序;分治、灵活布局、贪心算法;散列表(键值对组成的数据结构);图算法(模拟网络的方法):广度优先搜查、迪杰斯特拉算法(计算网络中两点之间最短距离);K近邻(KNN,用于创立介绍系统、OCR引擎、预测股价、物件分类)。

二分查找的期间复杂度为log2n,多少个2相乘等于n。

有序数组,定义low和high,非一个元素,猜中,大了,小了。

选用排序:o(n方),极速排序:o(nlogn),存储最小的值,存储最小元素的索引,找出最小的值,加到新数组中。

循环,程序的功能更好,递归,程序更容易了解。

栈有两种操作:压入和弹出。

每个递归函数都有两部分:基线条件和递归条件,递归条件指的是函数调用自己,基线条件指的是函数不再调用自己,防止有限循环。

编程概念,调用栈,计算机在外部经常使用被称为调用栈的栈,递归是调用自己的函数。

调用栈或许占用少量内存,处置打算是编写循环代码,或许经常使用尾递归,但并非一切的言语都允许尾递归。

分治-递归式疑问处置方法:步骤:找出基线条件,确定如何增加疑问的规模,使其合乎基线条件。

触及数组的递归函数,基线条件理论是数组为空或只蕴含一个元素。

极速排序-D&C算法:步骤:设置基线条件,数组小于2,选用基准值,将数组分红两个子数组:小于和大于基准值的元素,对这两个子数组启动极速排序,递归调用。

兼并排序:o(nlogn),极速排序:o(nlogn):层数o(logn)乘每层须要的期间o(n),但最差状况为o(n方)。

散列表-基本数据结构之一:外部机制:成功、抵触、散列函数。

散列表无序,数据结构:数组、列表、(栈、不能用于查找)、散列表(蕴含额外逻辑)。

数组和链表都间接映射到内存,但散列表经常使用散列函数来确定元素存储位置。

散列函数:不同的输入映射到不同的索引,输入不同的数字,散列表是散列函数和数组的联合,也称散列映射、映射、字典、关联数组。

缓存的数据存储在散列表中,访问页面时,先审核散列表能否存储了页面。

假设两个键映射到了同一个位置引发抵触,可以在这个位置存储一个链表,好的散列函数可以增加抵触。

填装因子为散列表元素/位置总数,因子越低,出现抵触的或许性越小,功能越高。

广度优先搜查(BFS)的含意:处置最短门路疑问的算法。

步骤:经常使用图来建设疑问模型,经常使用广度优先搜查算法(能否有门路,哪个门路最短)。

一切算法中,图算法是最有用的。

队列(数据结构):相似于栈,不能随机访问队列中元素,只允许入队和出队(压入和弹出),先添加的先出队,即先进先出(FIFO),而栈是后进先出(LIFO)。

有向图:相关是单向的,无向图:没有箭头,间接相连的节点互为街坊。

拓扑排序:依据图创立一个有序列表。

迪杰斯特拉算法:实用于加权图(提高或降落某些边的权重),找出加权图中的最短门路。

只实用于有向无环图,假设有负权边,不能经常使用迪杰斯特拉算法,由于算法假定处置过的节点,没有返回终点的最短门路,故,有负权边的可用贝尔曼-福特算法。

在未处置的节点找到开支最小的节点,遍历以后节点的一切街坊,假设经以后节点返回该街坊更近,就降级街坊开支,同时将该街坊的父节点设置为以后节点,将以后节点标志为处置过,找出接上去要处置的节点,并循环。

贪心算法:每步都选用部分最优解,最终就是全局最优解,易于成功,运转快,是个不错的近似算法。

汇合相似于列表,然而不蕴含重复的元素。

贪心算法:o(n方),NP齐全疑问:须要计算一切的解,从当选出最小距离,计算量大,最佳做法是经常使用近似算法。

灵活布局:商定条件下找到最优解,在疑问可合成为彼此独立且团圆的子疑问时,就可经常使用灵活布局来处置。

灵活布局处置打算触及网络,每个单元格都是子疑问,需思考如何将疑问合成为子疑问。

最长公共序列。

K最近邻算法(KNN):电影介绍系统。

特色抽取:目的打分,计算距离(相似水平),N维。

KNN的基本上班:分类和回归。

运行:OCR光学字符识别(optical character recognition),提取线段、点、曲线特色,找出与新图像最近的街坊;语音识别,人脸识别。

渣滓邮件过滤器:豪华贝叶斯分类器。

二叉查找树(binary search tree):有序树状数据结构。

二叉查找树拔出和删除操作快于有序数组,但不能随机访问(没有索引)。

红黑树是处于平衡形态的不凡二叉树,不平衡时,如向右歪斜时功能不佳。

B树是一种不凡的二叉树。

反向索引:一个散列表,将单词映射到蕴含他的页面,罕用于创立搜查引擎。

并行算法:速度的优化非线性,由于并行性治理开支和负载平衡。

散布式算法:不凡的并行算法,mapreduce(映射和归并函数),映射:义务多时智能调配多台计算机成功,将一个数组转换成另一个数组,归并是将一个数组转换成一个元素。

线性布局:在给定解放条件下最大限制的改善指定目的,经常使用simplex算法,图算法为线性布局子集。

有哪些排序算法是稳固的?

稳固的排序算法:冒泡排序、拔出排序、归并排序、基数排序、计数排序。

1、冒泡排序:冒泡排序是一种基本的比拟排序算法,它经过屡次遍历数据来将较大的元素逐渐“冒泡”到数组的开端。

冒泡排序是稳固的,但在大型数据集上功能较差。

2、拔出排序:拔出排序是一种便捷的排序算法,它一一将元素拔出已排序的部分。

拔出排序是稳固的,实用于小型数据集。

3、归并排序:归并排序驳回分治战略,将数据分红小的部分,而后兼并这些部分以取得最终的有序数组。

归并排序是一种高效的排序算法,而且是稳固的。

4、基数排序:基数排序是一种非比拟排序算法,它依据数字的位数来对数据启动排序。

它是稳固的,特意适宜对数字启动排序。

5、计数排序:计数排序是一种非比拟排序算法,它经过统计每个元素出现的次数来对数据启动排序。

计数排序是稳固的,但对数据的范围有必定要求。

不稳固的排序算法

1、极速排序:极速排序是一种基于分治思维的排序算法,理论经过选用一个枢纽元素并将数据分红两部分来成功排序。

极速排序是不稳固的,由于在替换元素的环节中或许扭转相等元素的相对顺序。

2、堆排序:堆排序是一种基于二叉堆的排序算法,它不保障相等元素的相对顺序。

在堆排序中,元素的替换或许造成相等元素之间的相对顺序扭转。

3、希尔排序:希尔排序是一种改良的拔出排序算法,它不保障相等元素的相对顺序。

希尔排序的排序环节中触及增量,相等元素之间的相对位置或许出现变动。

4、选用排序:选用排序每次选用最小(或最大)的元素并将其放在已排序部分的开端。

由于选用排序的替换操作不是稳固的,它或许扭转相等元素的相对顺序。

5、希尔排序:希尔排序是一种改良的拔出排序算法,它不保障相等元素的相对顺序。

希尔排序的排序环节中触及增量,相等元素之间的相对位置或许出现变动。

算法都有哪些

算法的分类有很多,以下是一些经常出现的算法类型:

一、基础算法

1. 排序算法:用于将一组数据依照特定的顺序启动陈列。

经常出现的排序算法包括冒泡排序、选用排序、拔出排序、极速排序等。

2. 搜查算法:用于在数据结构中查找特定的元素。

经常出现的搜查算法包括线性搜查、二分搜查等。

此外,还有哈希表等初级搜查技术。

二、数据结构算法

数据结构算法是处置特定数据结构如数组、链表、树、图等的算法。

例如,二叉树中的遍历算法(前序遍历、中序遍历和后序遍历),图的深度优先搜查和广度优先搜查等。

这些算法在处置复杂数据结构时十分有效。

三、图算法

图算法用于处置与图形相关的疑问,如最短门路疑问(Dijkstra算法,Bellman-Ford算法)、最小生成树疑问(Prim算法,Kruskal算法)等。

这些算法在网络路由、天文消息系统等畛域有宽泛运行。

四、灵活布局算法

灵活布局算法是一种求解最优化疑问的方法,经过将疑问合成为若干个子疑问,而后逐渐求解子疑问来找到原疑问的最优解。

经常出现的灵活布局算法包括背包疑问、最长公共子序列疑问等。

这类算法在处置复杂决策疑问时十分有效。

五、机器学习算法

机器学习算法是人工智能畛域的一个关键分支,包括监视学习(如决策树、允许向量机)、无监视学习(如聚类剖析)以及深度学习(如神经网络)。

这些算法被宽泛运行于形式识别、人造言语处置等畛域。

算法的优劣间接影响着机器学习运行的成果。

因此机器学习畛域仍在始终开展和完善各种新的算法以提高功能和精度。

此外还有其余类型的算法如加密算法用于消息安保等。

不同类型的算法针对不同的运行场景和需求设计以处置实践疑问。

算法图解&gt &lt (长沙麻将打法和算法图解)

如何给Excel表中开售额排名?讨教 开售排行榜模板 (如何给excel表格加边框线条)
« 上一篇 2024-09-07
打字排版极速入门与提高媒体评论 突出重围 (打字排版极速怎么设置)
下一篇 » 2024-09-07

文章评论

该文章详细介绍了各种算法的分类和特点,包括排序、搜索等基础算法的详细介绍以及图论等复杂领域的应用,内容详实且易于理解!

该文章涵盖了广泛的算法类型,从基础排序和搜索到图论、机器学习等高级应用都有详细介绍,内容详实且易于理解适合初学者和专业人士参考学习!