算法总结

  • 快速union要画分支图合并

  • 快速find要列表找到代替的点

  • 希尔排序knuth序列是 13-4-1,sedewick序列是(1,5,19,41),横向长度=h(13-->4->1),然后纵向对于每一列插入排序。

  • 计数排序的计数数组中的每一个数都是加上之前的数就是位置数组

  • merge-sort就是分裂成每个元素再按照大小合并

  • 快速排序找到一个pivot然后从左右找依次比pivot小的数和大的数排序,递归这个步骤

  • 复杂度展开要展开递归方程找规律

  • huffman代码是贪心算法,每次都找最小的合并,画出二叉树,左0右1,每一个子叶是字母

  • pre-order是先根再左右子树,

  • in-order是先遍历先左子树再根再右子树

  • post-order是先左右子树最后根

  • 最少需要preorder和inorder才能找到原BST,最后用post-order验证

  • BST从叶插入左小右大,删除节点要找到前序或者后继

  • BST从根部插入要旋转,插入的反方向旋转,向R/L旋转就把子树的R/L换成父树的L/R

  • interval-BSt从叶插入左小右大,标明子树的最大值

  • interval-bst寻找,哪边的max大于[a,b]中的a就向哪边递归

  • 一次hash如果collision就+1

           ***平方hash***
           第几次collision就(j+i^2)mod k,j是第一次collision的值
           ***二次hash ***
          h1=k mod 19
          h2=1+k mod 97 
           h(k)=((k mod 19)+(1+k mod 97))mod 19 注意这里没有乘以collision的次数
               比如(45%19+1+45%97)%19=  15
                   collision!
                   (15%19+1+45%97)%19=4 ok
    
  • heapsort每次都要保证最大堆,按顺序插入,先左后右
    priority queen删除最大的节点要先把最大的节点和最小的额节点交换后删除,然后再进行最大堆整理

  • DFS按照字母表顺序深入搜索,递归时返回的每一步都检查是否有新的路线
    被指向的和指出的(A,B)比:

    / |A | B
    ----|----|----
    T | > | < |
    B | < | >|
    F | > | > |
    C | < | < |

图算法:

  • acyslic无环意思就是DFS没有B标记

最短路径算法

  • Dijkstra是每次都找权重最小的边松弛,直到所有定点都被松弛
  • bellman是对每条边松弛知道不再变化

最小生成树算法

  • prim算法是划线每次都找最短的
  • kruskal是找出所有最短的边,直到再找一个就会连成环

  • Kosaraju强连通分量,画一个反向图进行DFS得出(discover,endprocessing),在原图根据endpro递减顺序来进行DFS,每一块DFS开始都是一个SCC

对于DAG的拓扑排序

  1. 从 DAG 图中选择一个 没有前驱(即入度为0)的顶点并输出。
  2. 从图中删除该顶点和所有以它为起点的有向边。

重复 1 和 2 直到当前的 DAG 图为空或当前图中不存在无前驱的顶点为止。后一种情况说明有向图中必然存在环。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 链表 链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,...
    Mr希灵阅读 5,316评论 0 20
  • 一、概述 排序算法概念 在计算机科学与数学中,一个排序算法是将一组杂乱无章的数据按一定的规律顺次排列起来的算法。排...
    简书冷雨阅读 4,722评论 0 0
  • 算法总结 排序算法说明 (1)排序的定义:对一序列对象根据某个关键字进行排序; 输入:n个数:a1,a2,a3,....
    AKyS佐毅阅读 3,728评论 0 5
  • 作者:大海里的太阳原文地址:http://www.cnblogs.com/wxisme/ 前言 查找和排序算法是算...
    IT程序狮阅读 7,245评论 0 63
  • 第二节 身世磨砺童年苦 苦瓜藤上结苦瓜,麻子年幼多劫难。 麻子的父母是乡下的普通农民,老实巴交,从不招惹是非。守着...
    天河奔骁阅读 2,920评论 0 5