C C++算法实例.c
一、数论算法
1.求两数的最大公约数
2.求两数的最小公倍数
3.素数的求法
二、图论算法
1.最小生成树
A.Prim算法:
B.Kruskal算法:(贪心)
2.最短路径
A.标号法求解单源点最短路径:
B.Floyed算法求解所有顶点对之间的最短路径:
C. Dijkstra 算法:
3.计算图的传递闭包
4.无向图的连通分量
A.深度优先
B 宽度优先(种子染色法)
5.关键路径
6.拓扑排序
7.回路问题
9.判断图中是否有负权回路 Bellman-ford 算法
10.第n最短路径问题
三、背包问题
1.0-1背包: 每个背包只能使用一次或有限次(可转化为一次):
2.可重复背包
四、排序算法
A.快速排序:
B.插入排序:
C.选择排序:
D.冒泡排序
E.堆排序:
F. 归并排序
G.基数排序
五、高精度计算
1.高精度加法
2.高精度减法
3.高精度乘以低精度
4.高精度乘以高精度
5.高精度除以低精度
6.高精度除以高精度
六、 树的遍历
1.已知前序中序求后序
2.已知中序后序求前序
3.已知前序后序求中序的一种
七 进制转换
1.任意正整数进制间的互化
除n取余
2.实数任意正整数进制间的互化
乘n取整
3.负数进制:
设计一个程序,读入一个十进制数的基数和一个负进制数的基数,并将此十进制数转换为此负 进制下的数:-R∈{-2,-3,-4,....-20}
八 全排列与组合的生成
1.排列的生成:(1..n)
2.组合的生成(1..n中选取k个数的所有方案)
九.查找算法
1.折半查找
2.树形查找
十、贪心
*会议问题
(1) n个活动每个活动有一个开始时间和一个结束时间,任一时刻仅一项活动进行,求满足活动数最多的情况。
解:按每项活动的结束时间进行排序,排在前面的优先满足。
(2)会议室空闲时间最少。
(3)每个客户有一个愿付的租金,求最大利润。
(4)共R间会议室,第i个客户需使用i间会议室,费用相同,求最大利润。
十一、回溯法框架
1. n皇后问题
2.Hanoi Tower 汉诺塔
十二、DFS框架
NOIP2001 数的划分
十三、BFS框架
IOI94 房间问题
十五、数据结构相关算法
1.链表的定位函数
2.单链表的插入操作
3.单链表的删除操作
4.双链表的插入操作(插入新结点q)
5.双链表的删除操作