📝 数据结构和算法

20661篇技术文档
  Rabin-Karp算法

📅  最后修改于: 2020-09-28 02:45:37        🧑  作者: Mango

在本教程中,您将学习什么是rabin-karp算法。此外,您还将在C,C++,Java和Python找到rabin-karp算法的工作示例。Rabin-Karp算法是一种用于使用哈希函数搜索/匹配文本中的模式的算法。与朴素的字符串匹配算法不同,它在初始阶段不会遍历每个字符 ,而是过滤不匹配的字符 ,然后执行比较。哈希函数是将较大的输入值映射到较小的输出值的工具。此输出值称为哈希值。Rabin-Ka...

  基数排序算法

📅  最后修改于: 2020-09-28 02:46:32        🧑  作者: Mango

在本教程中,您将学习基数排序的工作方式。此外,您还将找到C,C++,Java和Python中基数排序的工作示例。基数排序是一种排序技术,它通过首先将相同位置值的各个数字分组来对元素进行排序。然后,根据元素的升序/降序对元素进行排序。假设我们有8个元素组成的数组。首先,我们将基于单位位置的值对元素进行排序。然后,我们将根据第十位的值对元素进行排序。这个过程一直持续到最后一个重要位置。令初始数组为[1...

  选择排序算法

📅  最后修改于: 2020-09-28 02:47:26        🧑  作者: Mango

在本教程中,您将学习选择排序的工作方式。另外,您还将找到使用C,C++,Java和Python进行选择排序的工作示例。选择排序是一种算法,它在每次迭代中从未排序列表中选择最小的元素,并将该元素放置在未排序列表的开头。选择排序如何工作?将第一个元素设置为minimum。至少选择第一个元素将minimum与第二个元素进行比较。如果第二个元素小于minimum,则将第二个元素分配为minimum。将mi...

  壳排序算法

📅  最后修改于: 2020-09-28 02:48:19        🧑  作者: Mango

在本教程中,您将学习shell排序的工作方式。此外,您还将找到使用C,C++,Java和Python进行shell排序的工作示例。壳排序是一种算法,该算法首先对彼此远离的元素进行排序,然后依次减小要排序的元素之间的间隔。它是插入排序的通用版本。在外壳排序中,将按特定间隔对元素进行排序。元素之间的间隔根据使用的顺序逐渐减小。 shell排序的性能取决于给定输入数组使用的序列类型。使用的一些最佳顺序是...

  生成树和最小生成树

📅  最后修改于: 2020-09-28 02:49:07        🧑  作者: Mango

在本教程中,您将通过示例和图形学习有关生成树和最小生成树的信息。在学习生成树之前,我们需要了解两个图:无向图和连接图。无向图是其中边不指向任何方向的图(即,边是双向的)。无向图连通图是其中始终存在从顶点到任何其他顶点的路径的图。连接图生成树生成树是无向连接图的子图,它包括图的所有顶点以及可能的最小边数。如果缺少顶点,则它不是生成树。边缘可以分配权重,也可以不分配权重。可以从完整图创建的具有n个顶点...

  堆栈数据结构

📅  最后修改于: 2020-09-28 02:50:01        🧑  作者: Mango

在本教程中,您将学习栈数据结构及其在Python,Java,C和C++中的实现。堆栈是编程中有用的数据结构。就像一堆板子彼此叠放。堆栈表示类似于一堆盘子想一想用这样一堆盘子可以做的事情在上面放一个新盘子卸下顶板如果要将板放在底部,则必须先卸下顶部的所有板。这种安排称为“后进先出”-放置的最后一个项目是第一个要出去的项目。LIFO堆栈原理用编程术语来说,将一个项目放在堆栈的顶部称为“推”,而将一个项...

  树遍历-顺序,前顺序和后顺序

📅  最后修改于: 2020-09-28 02:51:02        🧑  作者: Mango

在本教程中,您将学习不同的树遍历技术。此外,您还将在C,C++,Java和Python找到不同的树遍历方法的工作示例。遍历树意味着访问树中的每个节点。例如,您可能想要在树中添加所有值或找到最大的值。对于所有这些操作,您将需要访问树的每个节点。线性数据结构(如数组,堆栈,队列和链表)只有一种读取数据的方法。但是可以用不同的方式遍历像树这样的分层数据结构。树遍历让我们考虑一下如何在上面显示的图像中读取...

  树数据结构

📅  最后修改于: 2020-09-28 02:51:44        🧑  作者: Mango

在本教程中,您将学习树数据结构。另外,您还将了解不同类型的树以及树中使用的术语。树是非线性的分层数据结构,由边缘连接的节点组成。一颗树为什么是树数据结构?其他数据结构(例如数组,链接列表,堆栈和队列)是线性数据结构,可顺序存储数据。为了在线性数据结构中执行任何操作,时间复杂度随数据大小的增加而增加。但是,在当今的计算世界中这是不可接受的。不同的树数据结构是非线性数据结构,因此可以更快,更轻松地访问...

  队列类型

📅  最后修改于: 2020-09-28 02:52:25        🧑  作者: Mango

在本教程中,您将学习不同类型的队列以及插图。队列是编程中有用的数据结构。它类似于电影院大厅外面的售票队列,在该队列中,第一个进入队列的人是第一个获得票的人。数据结构中有四种不同类型的队列。让我们在下面讨论它们。简单队列在简单的队列中,插入发生在后面,而取出发生在前面。它严格遵循FIFO规则。简单队列表示要了解更多信息,请访问队列数据结构。循环队列在循环队列中,最后一个元素指向进行循环链接的第一个元...

  为什么要学习数据结构和算法?

📅  最后修改于: 2020-09-28 02:53:19        🧑  作者: Mango

在本文中,我们将学习为什么每个程序员都应借助示例来学习数据结构和算法。本文适用于刚开始学习算法并想知道对提高其职业/编程技能有多大影响的人员。对于那些想知道为什么Google,Facebook和Amazon这样的大公司为何聘请非常擅长优化算法的程序员的人也是如此。什么是算法?非正式地,算法只不过是解决问题的步骤。它们本质上是一个解决方案。例如,解决阶乘问题的算法可能如下所示:问题:找到n的阶乘在这...

  数据结构教程

📅  最后修改于: 2020-10-14 06:31:56        🧑  作者: Mango

数据结构教程数据结构(DS)教程提供了数据结构的基本和高级概念。我们的数据结构教程专为初学者和专业人士设计。数据结构是一种存储和组织数据以便有效使用的方法。我们的数据结构教程包括数据结构的所有主题,例如数组,指针,结构,链接列表,堆栈,队列,图,搜索,排序,程序等。什么是数据结构?数据结构名称本身表明组织内存中的数据。正如我们已经看到的一种数据结构,即C语言中的数组,有许多种组织存储器中数据的方法...

  数据结构介绍

📅  最后修改于: 2020-10-14 06:36:02        🧑  作者: Mango

数据结构介绍数据结构可以定义为一组数据元素,它提供了一种在计算机中存储和组织数据的有效方式,以便可以有效地使用它。数据结构的一些示例是数组,链表,堆栈,队列等。数据结构几乎在计算机科学的各个方面(例如操作系统,编译器设计,人工智能,图形等)广泛使用。数据结构是许多计算机科学算法的主要部分,因为它们使程序员能够高效地处理数据。它在提高软件或程序的性能方面起着至关重要的作用,因为软件的主要函数是尽可能...

  数据结构与算法

📅  最后修改于: 2020-10-14 06:39:48        🧑  作者: Mango

数据结构与算法什么是算法?算法是执行计算或某些其他问题解决操作(尤其是计算机)所需的过程或一组规则。算法的形式定义是它包含有限的指令集,这些指令以特定的顺序执行以执行特定的任务。它不是完整的程序或代码;它只是问题的解决方案(逻辑),可以使用流程图或伪代码将其表示为非正式描述。算法的特征以下是算法的特征:输入:算法具有一些输入值。我们可以将0或某些输入值传递给算法。输出:在算法结束时,我们将获得1个...

  数据结构渐进分析

📅  最后修改于: 2020-10-14 06:46:41        🧑  作者: Mango

渐近分析众所周知,数据结构是有效组织数据的一种方式,效率是根据时间或空间来衡量的。因此,理想的数据结构是一种占用最少时间来执行其所有操作和存储空间的结构。我们的重点是找到时间复杂度而不是空间复杂度,并且通过找到时间复杂度,我们可以决定哪种数据结构最适合算法。我们想到的主要问题是,应在什么基础上比较数据结构的时间复杂度?可以基于对其执行的操作来比较时间复杂度。让我们考虑一个简单的例子。假设我们有一个...

  数据结构指针

📅  最后修改于: 2020-10-14 06:48:00        🧑  作者: Mango

指针指针用于指向存储在计算机内存中任何位置的值的地址。要获取存储在该位置的值,称为取消引用指针。指针可提高重复过程的性能,例如:遍历字符串查找表控制表树状结构指针详细信息指针算术:指针中可以使用四种算术运算运算符:++,-,+,-指针数组:您可以定义数组以容纳多个指针。指向指针的指针:C允许您将指针放在指针上,依此类推。传递函数指针在C:通过引用或地址使能传递的参数将参数传递给在调用函数被调用的函...