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

常用数据结构和算法总结

时间:2023-03-05 15:13:21浏览次数:45  
标签:总结 排序 hash 插入排序 链表 算法 查找 数据结构

线性表:

  单链表

  双向链表

  循环链表

队列

递归

字符串

数组

  二叉树

  哈夫曼树:又称为最优树,是一种带权路径长度最短的树

  平很二叉树

  B树

  B-树

  B+树:Mysql默认采用的就是B+树进行存储的。

  红黑树:像HashMap和TreeMap底层都用到了红黑树。

图:

  邻接矩阵

  邻接表

  十字链表

  邻接多重表

  深度优先搜索

  广度优先搜索

  最小生成树

  最短路径  

  拓扑排序

  关键路径

散列表:

  主要的一个应用就是hash函数,在很多的应用场景中都有遇到,比如:

  负载均衡;

  HashMap;

  Redis中的hash数据结构;

  很多中间件进行分片存储时也会用到hash算法,比如消息中间件、搜索引擎;

  微服务中的熔断降级策略也会有一致性hash的策略。

查找:

  顺序查找

  折半查找

  分块查找

排序:

  插入排序:

    直接插入排序

    折半插入排序

    希尔排序:

    1.  希尔排序实质上是采用了分组插入的方法,先将整个待排序记录序列分割成几组,从而减少参与直接插入排序的数据量,对每组直接进行插入排序然后增加每组的数据量,重新分组。这样当经过几次分组排序后,整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。

  交换排序:

    冒泡排序

    快速排序

选择排序

  简单选择排序

  堆排序:在java中典型的就是用的是PriorityQueue

归并排序:利用了分支法的思想。先将数组拆分成一个个小块,保证这个小块内部有序,然后步长逐渐增加,保证数组整体有序。

基数排序:有点类似桶排序,利用数据的特点,取出数据的一小部分,比如前缀,先将整体划分到一个桶中,然后再对桶中的后面部分采用桶排序,保证整体有序。

 

算法:

递归

排列组合

分治法

动态规划

穷举法

备忘录

深度优先

广度优先

贪心算法

滑动窗口

双指针

基因算法

模拟

 

  

  

 

标签:总结,排序,hash,插入排序,链表,算法,查找,数据结构
From: https://www.cnblogs.com/zhf123/p/17180606.html

相关文章

  • 第2章 算法——程序的灵魂
    本文作者:FiftyOne本文链接:https://www.cnblogs.com/FiftyOne/p/17180498.html版权声明:未经作者允许严禁转载第2章 算法——程序的灵魂一个程序主要包括以下两方面的信......
  • 剑指Offer36 -- 数据结构
    1.题目描述二叉搜索树与双向链表2.思路3.代码......
  • 基于polar码和SCMA的多用户检测的联合检测译码matlab仿真,polar采用SCAN软译码,SCMA用
    1.算法描述构造的核心是通过信道极化(channelpolarization)处理,在编码侧采用方法使各个子信道呈现出不同的可靠性,当码长持续增加时,部分信道将趋向于容量近于1的完美信道(无误......
  • 以下总结了Java一些面试前准备和技术参考题,希望对你有所帮助
    以下真实模拟JAVA面试场景:感谢您参加我们的面试;以下是我们总结一些面试前准备和技术参考题,希望对你有所帮助。首先,你需要先准备下工作相关的自我介绍,包括以下内容:几年......
  • 手刷算法day2(1)
    104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给......
  • k-近邻算法
    1.k-近邻算法概述简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类优点:精度高、对异常值不敏感、无数据输入假定。缺点:计算复杂度高、空间复杂度高。适用数据范......
  • 每日总结2023/3.5
    4.单选按钮RadioGroupRadioGroup提供的只是一个单选按钮的容器,只有在此容器中配置多个按钮组件之后才可以使用,设置单选按钮则需要使用RadioButton类<LinearLayoutxmlns:a......
  • 2023/3/3每日总结
    设置视图的宽高>视图宽度通过属性android:layoutwidth表达,视图高度通过属性android:layoutheioht表达,宽高的取值主要有下列三种:matchparent:表示与上级视图保持一致wr......
  • Qt插件开发总结5--主界面嵌入插件UI
    文章目录​​一、前言​​​​二、效果展示​​​​三、嵌入插件UI​​​​1、插件接口文件添加UI指针​​​​2、插件子项目工程建立UI类​​​​3、插件类中创建UI类、使U......
  • 回溯算法
    leetcode:131分割回文串问题说实话,状态学了回溯,感觉已经懂了但是,今天这是搞笑代码直接上代码先上图,理解这个startIndexclassSolution{private:vector<vec......