
虽然算法与计算机程序密切相关,但二者也存在区别:计算机程序是算法的一个实例,是将算法通过某种计算机语言表达出来的具体形式;同一个算法可以用任何一种计算机语言来表达。
算法列表
图论
路径问题
0/1边权最短路径
BFS
非负边权最短路径(Dijkstra)
可以用Dijkstra解决问题的特征
负边权最短路径
Bellman-Ford
Bellman-Ford的Yen-氏优化
差分约束系统
Floyd
广义路径问题
传递闭包
极小极大距离 / 极大极小距离
Euler Path / Tour
圈套圈算法
混合图的 Euler Path / Tour
Hamilton Path / Tour
特殊图的Hamilton Path / Tour 构造
生成树问题
最小生成树
第k小生成树
最优比率生成树
0/1分数规划
度限制生成树
连通性问题
强大的DFS算法
无向图连通性
割点
割边
二连通分支
有向图连通性
强连通分支
2-SAT
最小点基
有向无环图
拓扑排序
有向无环图与动态规划的关系
二分图匹配问题
一般图问题与二分图问题的转换思路
最大匹配
有向图的最小路径覆盖
0 / 1矩阵的最小覆盖
完备匹配
最优匹配
稳定婚姻
网络流问题
网络流模型的简单特征和与线性规划的关系
最大流最小割定理
最大流问题
有上下界的最大流问题
循环流
最小费用最大流 / 最大费用最大流
弦图的性质和判定
组合数学
解决组合数学问题时常用的思想
逼近
递推/动态规划
概率问题
Polya定理
计算几何 / 解析几何
计算几何的核心:叉积 / 面积
解析几何的主力:复数
基本形
点
直线,线段
多边形
凸多边形 / 凸包
凸包算法的引进,卷包裹法
Graham扫描法
水平序的引进,共线凸包的补丁
完美凸包算法
相关判定
两直线相交
两线段相交
点在任意多边形内的判定
点在凸多边形内的判定
经典问题
最小外接圆
近似O(n)的最小外接圆算法
点集直径
旋转卡壳,对踵点
多边形的三角剖分
数学/数论
最大公约数
Euclid算法
扩展的Euclid算法
同余方程 / 二元一次不定方程
同余方程组
线性方程组
高斯消元法
解mod 2域上的线性方程组
整系数方程组的精确解法
矩阵
行列式的计算
利用矩阵乘法快速计算递推关系
分数
分数树
连分数逼近
数论计算
求N的约数个数
求phi(N)
求约数和
快速数论变换
……
素数问题
概率判素算法
概率因子分解
数据结构
组织结构
二叉堆
左偏树
二项树
胜者树
跳跃表
样式图标
斜堆
reap
统计结构
树状数组
虚二叉树
线段树
矩形面积并
圆形面积并
关系结构
Hash表
并查集
路径压缩思想的应用
STL中的数据结构
vector
deque
set / map
动态规划/记忆化搜索
动态规划和记忆化搜索在思考方式上的区别
最长子序列系列问题
最长不下降子序列
最长公共子序列
一类NP问题的动态规划解法
树型动态规划
背包问题
动态规划的优化
四边形不等式
函数的凸凹性
状态设计
规划方向
线性规划
常用思想
二分
最小表示法
串
KMP
Trie结构
后缀树/后缀数组
LCA/RMQ
有限状态自动机理论
排序
选择/冒泡
快速排序
堆排序
归并排序
基数排序
拓扑排序
排序网络
程序=数据结构+算法。算法是一种复杂的问题计算方法,可以用程序来描述,但不等于程序。
算法的描述方式有:自然语言,流程图,伪代码等。
1.自然语言的优势:自然语言是人类的语言。所描述的算法无需特殊训练就很容易理解,而且比较灵活。
2.流程图的优点:流程图所描述的算法清晰简洁,且选择结构易于表达,不依赖于任何特定的计算机和计算机编程语言,有利于不同环境的编程。
3.伪代码的优点:它避免了编程语言严格而繁琐的编写格式,并且编写起来很方便。同时,它具有格式紧凑、易于理解、易于过渡到计算机编程语言等优点。
扩展资料:
注意事项:
使用伪代码的算法的目的是使描述的算法在任何编程语言中都易于实现。
因此伪代码必须结构清晰、源代码简单、易读,并且像自然语言一样。在自然语言和编程语言之间,编程语言的书面形式体现了算法的功能。
伪代码在编程开始时用作流程图,以帮助编写程序流程。简单的程序一般不需要写过程,写的想法,但复杂的代码,还是需要写过程,整体考虑整个功能如何实现。
整体结构是三个while循环,最里面的就是两个if判断,x,y,z依次加一直到满足第一个if然后满足第二个if 然后打印 然后继续枚举
可以换一种方法理解
那就这个程序就等同于
for x=1;x小于等于30 ;x++
for y=1;y小于等于30 ;y++
for z=1; z小于等于30;z++
if x+y+z = 30
if 3x+2y+z=50
then print
高级语言,是一种面向问题的程序设计语言,且独立于计算机的硬件,对具体的算法进行描述,所以又成为"算法语言",它的特点是独立性,通用性和可移植性好。
其种类千差万别,但一般包含有以下四种成分:数据成分用来描述程序所涉及的数据;运算成分用来描述运算;控制成分用来表达程序的控制构造;传输成分用来表达数据的传输。
由于高级语言程序主要是描述计算机的解题过程,即描述复杂的加工处理过程,所以也称这种高级语言为面向过程语言。
用高级语言编写的程序称为“源程序”。计算机不能直接技源程序的语句运行,通常有解释方式和编译方式两种方法在计算机上执行源程序。
以上就是关于计算机算法的算法与程序全部的内容,包括:计算机算法的算法与程序、算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。、高中数学 算法 程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)