数据结构与算法 java版 学习笔记 第二章
2013-08-14 19:11
253 查看
该章节也是一章铺垫的章节,介绍了1.计算算法复杂度和空间复杂度的方法和几种常见的算法复杂度,
2.还有数列最大值子数列的4种算法优劣,
3.关于分治法的思想(分而食之),
4最大公约数的求法
算法复杂度的计算这里就不赘述了。
一下是 计算数列最大和子数列的几种算法
其实求最大子列的算法核心就是:掐头去尾,那头 为什么掐掉呢? 必须是因为头的和是小于0的,至于尾部的处理,其实 算法1,2,4 都是一个意思。算法3虽然不是最优解,但是确实可以解决类似问题的通解,没思路了就可以用这个。
至于求最大公约数的算法,貌似网上到处都是,但原理到底是啥?两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 /
105 = 2余42,所以105和42的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数。由辗转相除法也可以推出,两数的最大公约数可以用两数的整数倍相加来表示,如21 = 5 × 105 + (−2) × 252。这个重要的等式叫做贝祖等式。
2.还有数列最大值子数列的4种算法优劣,
3.关于分治法的思想(分而食之),
4最大公约数的求法
算法复杂度的计算这里就不赘述了。
一下是 计算数列最大和子数列的几种算法
其实求最大子列的算法核心就是:掐头去尾,那头 为什么掐掉呢? 必须是因为头的和是小于0的,至于尾部的处理,其实 算法1,2,4 都是一个意思。算法3虽然不是最优解,但是确实可以解决类似问题的通解,没思路了就可以用这个。
至于求最大公约数的算法,貌似网上到处都是,但原理到底是啥?两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 /
105 = 2余42,所以105和42的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数。由辗转相除法也可以推出,两数的最大公约数可以用两数的整数倍相加来表示,如21 = 5 × 105 + (−2) × 252。这个重要的等式叫做贝祖等式。
相关文章推荐
- Thinking in java学习笔记 第二章:一切都是对象
- java编程思想学习笔记 第二章
- JAVA学习笔记——第二章 Eclipse的下载安装以及配置和启动
- JAVASE学习笔记:第二章 JAVA基本数据类型
- Java学习笔记―第二章 初识Java
- Java学习笔记—第二章
- 《Java Concurrency in Practice》 学习笔记--第二章:线程安全
- java 虚拟机 学习笔记 第二章 走进java
- Java学习笔记----《head first java 》-第二章 数字游戏事例看类与对象,对象间互动。
- 深入理解java虚拟机学习 笔记 第二章 java 内存区域和内存溢出异常
- Java 学习笔记 ------第二章 从JDK到IDE
- think in java - 第二章 学习笔记
- java设计模式学习笔记第二章
- <<深入Java虚拟机>>-第二章-Java内存区域-学习笔记
- objective-c学习笔记第二章《objective-c中类型,表达式与java中的区别》
- Java学习笔记 第二章 Java语言基础
- Java 螺纹第三版 第一章Thread介绍、 第二章Thread创建和管理学习笔记
- JAVA学习笔记19——MyBatis框架第二章
- java编程思想学习笔记--第二章 一切都是对象
- JAVA学习笔记15——Spring框架第二章