算法基础知识

参考《算法设计技巧与分析》(沙特)阿苏外耶(Alsuwaiyel,M.H.)

就是做一个记录,这样感觉做题写代码的时候会更清晰 OwO

一 基本概念

时间空间复杂度。

log 2,lg 10,ln e

简单的二分搜索。O(logn)

排序:插入,选择 ,自底向上合并排序。

合并(merge)

log1+log2+...+logn=logn!  =O(nlog(n))

1/1+1/2+...+1/n=O(logn)

n/1+n/2+...+n/n=O(nlogn)

由logn!=O(nlogn),log(2^n)=n,可知2^n=O(n!)

由log(2^n^2)=n^2,可知n!=O(2^n^2)

Σn/2^j (j 0-logn)=O(n)

二 数学预备知识

集合,关系,函数。对数,底函数顶函数,阶乘,二项式系数,鸽巢原理,递推

三 数据结构

链表,图,树,堆,不相交集数据结构

四 递归

如基数排序,整数幂,多项式求值(Horner规则),生成排列,寻找多数元素

五 分治

二分搜索,合并排序,寻找中项和,第k小,快速排序,大整数乘法,矩阵乘法,最近点对。

六 动态规划

最长公共子序列,矩阵链相乘,背包

七 贪心算法

最短路,最小生成树,破圈

八 图遍历

DFS,BFS

九 NP,计算复杂性,下界

十 回溯法

3,8着色。8皇后,分支界限法。

十一 随机算法,近似算法

十二 网络流

Ford-Fulkerson,Dinic,MPM,最大容量增值,最短路径增值

十三 匹配

网络流方法,匈牙利树,二分图...

十四 计算几何

十五 Voronoi图解

你可能感兴趣的:(算法基础知识)