算法学习笔记
2010-05-24 09:52
85 查看
一般算法:
尾递归
将递归函数调用放到递归单元中的最后一句,在递归参数中完成递归计算,缩小参数数据规模。
这种算法形式上是递归,实际上是在做迭代工作,可以很直观地转换成非递归的迭代算法。
素数筛选法
还是需要双层循环。但引入一个状态数组, 在每次外循环中利用内循环求出外循环变量i的在所求值范围内的所有倍数,加快筛选合数的速度。
汉诺塔
Fibonacci数列
关于互为逆运算且满足交换律的运算规律
定义两个符号#和@,这两个符号互为逆运算,也就是说(x # y) @ y = x。现在依次执行下面三条命令:
执行了第一句后x变成了x # y。那么第二句实质就是y <- x # y @ y,由于#和@互为逆运算,那么此时的y变成了原来的x。第三句中x实际上被赋值为(x # y) @ x,如果#运算具有交换律,那么赋值后x就变成最初的y了。这三句话的结果是,x和y的位置互换了。
排序算法:
冒泡排序, O(n^2), 单次循环中小数与大数交互位置
选择排序, O(n^2), 单次循环中将最小的数放在最前面
插入排序, O(n^2), 单次循环中从后往前把数插到刚好比它小的数的后一位
希耳排序, O(n^2), 在插入排序的基础上引入一个gap变量,让单次循环中从后往前插数是按gap的值进行“跳越”遍历,每插一次gap递减一次,直到gap被递减为1(如果gap在某次递减后小于1则让gap=1),通常gap的起始值取排序数组的长度的一半,递减量取2.2
快速排序, O(nlogn), 在单次处理中将比某一个成员值小的数移到它的左边,比它大的数移到它的右边,再分别对左边部分和右边部分进行同样逻辑的递归
归并排序, O(nlogn), 将自身不断二分(递归),在每一个二分部分中按序合并前半部分数据和后半部分数据。
图论:
深度优先遍历
广度优先遍历
最小生成树
Dijsktra最短路径算法
尾递归
将递归函数调用放到递归单元中的最后一句,在递归参数中完成递归计算,缩小参数数据规模。
这种算法形式上是递归,实际上是在做迭代工作,可以很直观地转换成非递归的迭代算法。
素数筛选法
还是需要双层循环。但引入一个状态数组, 在每次外循环中利用内循环求出外循环变量i的在所求值范围内的所有倍数,加快筛选合数的速度。
汉诺塔
Fibonacci数列
关于互为逆运算且满足交换律的运算规律
定义两个符号#和@,这两个符号互为逆运算,也就是说(x # y) @ y = x。现在依次执行下面三条命令:
x <- x # y y <- x @ y x <- x @ y
执行了第一句后x变成了x # y。那么第二句实质就是y <- x # y @ y,由于#和@互为逆运算,那么此时的y变成了原来的x。第三句中x实际上被赋值为(x # y) @ x,如果#运算具有交换律,那么赋值后x就变成最初的y了。这三句话的结果是,x和y的位置互换了。
排序算法:
冒泡排序, O(n^2), 单次循环中小数与大数交互位置
选择排序, O(n^2), 单次循环中将最小的数放在最前面
插入排序, O(n^2), 单次循环中从后往前把数插到刚好比它小的数的后一位
希耳排序, O(n^2), 在插入排序的基础上引入一个gap变量,让单次循环中从后往前插数是按gap的值进行“跳越”遍历,每插一次gap递减一次,直到gap被递减为1(如果gap在某次递减后小于1则让gap=1),通常gap的起始值取排序数组的长度的一半,递减量取2.2
快速排序, O(nlogn), 在单次处理中将比某一个成员值小的数移到它的左边,比它大的数移到它的右边,再分别对左边部分和右边部分进行同样逻辑的递归
归并排序, O(nlogn), 将自身不断二分(递归),在每一个二分部分中按序合并前半部分数据和后半部分数据。
图论:
深度优先遍历
广度优先遍历
最小生成树
Dijsktra最短路径算法
相关文章推荐
- 大数据算法学习笔记(2):大数据算法
- [算法学习笔记]数据结构之栈和队列
- hdr算法学习笔记
- 【算法学习笔记】20.算法设计初步 归并排序 求逆序数
- 大数据学习笔记之四十 数据挖掘算法之预测建模关于决策树模型的介绍
- 20170703算法学习笔记
- stl源码剖析 详细学习笔记 算法(1)
- java 虚拟机学习笔记整理001--运行时的数据区域+垃圾收集算法
- Factorization Machines 学习笔记(四)学习算法
- 【C++ Primer 学习笔记】: 容器和算法之【顺序容器】
- |算法讨论|线段树2 学习笔记
- 数据结构与算法学习笔记
- 寻路算法学习笔记:Toward More Realistic Pathfinding
- 七月算法深度学习 第三期 学习笔记-第八节 循环神经网络与相关应用
- 分词算法模型学习笔记(一)——HMM
- Hadoop学习笔记—12.MapReduce中的常见算法
- 数据结构与算法-学习笔记2
- [算法学习笔记] AVL树----带有平衡条件的二叉搜索树
- 算法分析基础学习笔记
- 【算法学习笔记】35.高精度 竖式乘法 SJTU OJ 1274