首页 > 编程语言 >数据结构和算法

数据结构和算法

时间:2024-09-04 14:39:44浏览次数:8  
标签:数据结构 元素 算法 搜索 排序 节点

数据结构和算法

数据结构

  1. 数组(Array):一种线性数据结构,可以存储相同类型的元素,支持基于索引的快速访问。
  2. 链表(Linked List):由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。
  3. 栈(Stack):遵循后进先出(LIFO)原则的线性数据结构,只能在一端(栈顶)进行添加或删除操作。
  4. 队列(Queue):遵循先进先出(FIFO)原则的线性数据结构,两端分别进行添加(队尾)和删除(队首)操作。
  5. 哈希表(Hash Table):通过哈希函数将键映射到表中的位置来访问数据,支持高效的查找、插入和删除操作。
  6. 树(Tree):由节点组成的层次结构,每个节点有零个或多个子节点,常用于表示具有层次关系的数据。
  7. 二叉树(Binary Tree):每个节点最多有两个子节点的树结构,常用于实现各种高效的算法。
  8. 二叉搜索树(Binary Search Tree, BST):二叉树的变体,左子树上的所有节点的值小于或等于节点的值,右子树上的所有节点的值大于节点的值。
  9. 堆(Heap):一种特殊的树结构,通常用于实现优先队列,根节点是最大的(最大堆)或最小的(最小堆)。
  10. 图(Graph):由顶点(节点)和边组成,用于表示实体间的关系。

排序算法

  • 冒泡排序(Bubble Sort):通过重复遍历待排序的数列,比较每对相邻元素的大小,并在必要时交换它们的位置。每一轮遍历都会将最大的元素“冒泡”到它应该在的位置。
  • 选择排序(Selection Sort):它不断地从待排序的元素中选择最小的元素,并将其放到已排序序列的末尾。
  • 插入排序(Insertion Sort):通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 O(1) 的额外空间的排序)。
  • 快速排序(Quick Sort):通过选取一个“基准”元素,将数组分为两个子数组,一个包含小于基准的元素,另一个包含大于基准的元素。然后递归地在两个子数组上重复这个过程。
  • 归并排序(Merge Sort)
  • 堆排序(Heap Sort)

搜索算法

  • 线性搜索(Linear Search):从数据结构的开始或结束逐个检查每个元素,直到找到所需的元素或搜索完所有元素。
  • 二分搜索(Binary Search):在有序数组中,通过比较数组中间的元素与目标值来确定搜索区间。如果目标值等于中间元素,则搜索成功;如果目标值小于中间元素,则在左半部分继续搜索;如果目标值大于中间元素,则在右半部分继续搜索。这个过程将重复进行,每次搜索范围减半,直到找到目标值或搜索范围为空。

机器学习算法

  1. 线性回归(Linear Regression)
    • 用于预测连续值输出,例如房价预测。
    • 通过拟合数据点并找到最佳拟合直线(或曲线)来建模变量之间的关系。
  2. 逻辑回归(Logistic Regression)
    • 虽然名字中有“回归”,但它用于分类问题,特别是二分类问题。
    • 通过使用逻辑函数(如Sigmoid函数)将线性回归的输出映射到0和1之间,用于表示概率。
  3. 决策树(Decision Tree)
    • 用于分类和回归问题。
    • 通过学习简单的决策规则从数据特征中推断出目标值。
  4. 随机森林(Random Forest)
    • 是决策树的集成学习方法,用于分类和回归问题。
    • 构建多个决策树并将它们的预测结果结合起来,以提高模型的准确性和稳定性。
  5. 支持向量机(SVM, Support Vector Machine)
    • 用于分类和回归问题,特别擅长于二分类问题。
    • 通过找到数据点之间的最优边界线(或超平面),这条边界线最大化了不同类别之间的边界。
  6. 朴素贝叶斯(Naive Bayes)
    • 基于贝叶斯定理的分类算法,特别适用于大量特征的数据集,如文本分类。
    • 假设特征之间相互独立,通过计算每个类别的后验概率来预测新样本的类别。
  7. K最近邻(K-Nearest Neighbors, KNN)
    • 一种简单的算法,用于分类和回归问题。
    • 通过查找测试数据点的K个最近邻居来进行预测。
  8. K均值聚类(K-Means Clustering)
    • 一种无监督学习算法,用于将数据点分组成K个簇。
    • 通过最小化簇内数据点与簇中心的距离来进行聚类。

标签:数据结构,元素,算法,搜索,排序,节点
From: https://www.cnblogs.com/unrealqcc/p/18396416

相关文章

  • 【开源大模型生态2】数据、算力、算法,越来越猛!
    人工智能(A)的快速发展依赖于三个核心要素:数据,算法,算力。这个观点已经得到了业界的高度认可。只有这三个要素同时满足了才能加速人工智能的大发展。随着人工智能大模型规模变大以及普及应用,人工智能对能源的需求也在不断加大,逐渐成为人工智能发展关键因素之一。从感知、认......
  • PART1-Oracle关系数据结构-分区、视图以及其他的对象
    4.分区、视图与其他对象4.1.分区概述分区允许您将非常大的表和索引分解成更小、更易于管理的部分,称为分区。每个分区是一个独立的对象,有自己的名称,并且可以选择拥有自己的存储特性。为了说明分区的概念,假设一个人力资源经理有一个大盒子,里面装着员工文件夹。每个文件夹都列出......
  • 【数据结构和算法实践-树-LeetCode100-判断是否是相同的树】
    数据结构和算法实践-树-LeetCode100-判断是否是相同的树题目MyThought代码示例JAVA-8题目给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例输入:p=[1,2,3],q=[1,2......
  • 【数据结构和算法实践-链表-LeetCode23-合并K个有序数组】
    合并K个有序数组题目MyThought代码示例JAVA-8题目合并K个有序数组MyThought一、将ListNode放入PriorityQueue中1.1、设置PriorityQueue的比较器规则1.2、将ListNode[]放入priorityQueue二、再将数据依次弹出放到ListNode中代码示例JAVA-8publicListNod......
  • 【路径规划】移动机器人在未知环境下目标的路径规划算法
    摘要本文介绍了一种新型路径规划算法,专用于在包含多个障碍物的环境中为机器人找到最优路径。该算法通过分析障碍物位置和目标点位置,生成一个引导机器人避开障碍物并到达目标的路径。项目展示了路径规划在机器人导航中的重要性,并通过实验验证了算法的有效性。理论路径规划是......
  • 掌握检索技术:构建高效知识检索系统的架构与算法12
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 掌握检索技术:构建高效知识检索系统的架构与算法29
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 掌握检索技术:构建高效知识检索系统的架构与算法27
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 1.2贪心算法
    算法理解每次做决策时总是采取当前最优策略,从局部最优到整体最优贪心的证明呜呜呜,我不会贪心的特征1.贪心选择特征每次选择可能依赖于以前的选择但不依赖于后面的选择,要证明它,就要证明它满足局部最优到整体最优,好像又证回去了2.最优子结构性质一个问题的最优解包含其子问......
  • 代码随想录算法day7 - 字符串1
    题目1344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。示例1:输入:s=["h","e","l","l","o"]输出:["o","l","l","e",&qu......