- 博客(10)
- 收藏
- 关注
原创 《算法导论》学习笔记
第4章入门篇(2)——算法初步(7)4.7 其他高效技巧与算法4.7.1 打表打表是一种典型的用空间换时间的技巧,一般指将所有可能需要用到的结果事先计算出来,这样后面需要用到时就可以直接查表获得。打表常见的几种方法:在程序中一次性计算出所有需要用到的结果,之后的查询直接取这些结果在程序B中分一次或多次计算出所有需要用到的结果,手工把结果写在程序A的组中,然后在程序A中就可以直接使用这...
2019-03-26 21:19:46
156
原创 《算法导论》学习笔记
第4章入门篇(2)——算法初步(6)4.6 two pointers4.6.1 什么是 two pointerstwo pointers是算法编程中一种编程技巧。two pointers的思想十分简洁,但却提供了非常高的算法效率。第一个例子:给定一个递增的正整数序列和一个正整数M,求序列中的两个不同位置的数a和b,使它们的和恰好为M,输出所有满足条件的方案。本题最直接的想法就是使用二重循...
2019-03-23 15:26:50
121
原创 《算法导论》学习笔记
第4章入门篇(2)——算法初步(5)4.5 二 分4.5.1 二分查找一个经典的问题:如何在一个严格递增序列A中找出给定的数x最直接的办法是:线性扫描序列中的所有元素,如果当前元素恰好为x,则表明查找成功;如果扫描完整个序列都没有发现给定的数x,则表明查找失败,说明序列中不存在数x。这种顺序查找的时间复杂度为O(N)。更好的办法便是使用二分查找:二分查找是基于有序序列的查找算法,该算法一开...
2019-03-20 18:10:05
262
原创 《算法导论》学习笔记
第4章 入门篇(2)——算法初步(4)4.4 贪 心4.4.1 简单贪心贪心法是求解一类最优化问题的方法,它总是考虑在当前状态下局部最优(或较优)的策略,来使全局的结果达到最优(或较优)。显然,如果采取较优而非最优的策略(最优策略可能不存在或是不易想到),得到的全局结果也无法是最优的。而要获得最优结果,则要求中间的每步策略都是最优的,因此严谨使用贪心法来求解最优化问题需要对采取的策略进行证明...
2019-03-19 13:03:40
371
原创 《算法笔记》学习笔记
第4章 入门篇(2)——算法初步4.3 递归4.3.1 分 治分治的全称为“分而治之”。分治法将原问题划分成若干个规模较小而结构与原问题相同或相似的问题,然后分别解决这些子问题,最后合并子问题的解,即可得到为原问题的解。分治法有三个步骤①分解 ②解决 ③合并。分治法作为一种算法思想,即可以使用递归的手段去实现,也可以通过非递归的手段去实现注:分治法分解出的子问题应当是相互独立、没有交叉的...
2019-03-18 15:13:45
132
原创 《算法笔记》学习笔记
第章4入门篇(2)–算法初步(2)4.2 散列散列的定义与整数散列散列:将元素通过一个函数转换为整数,使得该整数可以尽量唯一地代表这个元素。其中把这个转换函数称为散列函数H,也就是说,如果元素在转换前为key,那么转换后就是一个整数H(key).常用的散列函数有:直接定址法、平方取中法、除留余数法。①直接定址法:指恒等变换(即H(key)=key,直接把key作为数组下标,是最常见最...
2019-03-17 12:52:20
170
原创 《算法笔记》学习笔记
第章4入门篇(2)–算法初步(2)4.1排序排序是基础算法之一,属于常见题型。由于考试中大部分只需要得到排序的最终结果,而不需要去写排序的完整过程,因此推荐直接使用C语言中的库函数qsort或者C++中的sort函数进行排序。排序题型的常用解题步骤相关结构体的定义对排序题,一定会在题目中给出个体的许多信息,这些信息在排序过程中一般都会用到,所以常常将他们存至一个结构体当中,然后用结构体...
2019-03-16 15:29:52
313
原创 排序算法
十大排序算法1.冒泡排序(Bubble Sort)冒泡排序一种交换排序,他的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。冒泡的实现在细节上可以有很多种变化。2.1算法描述(1)比较相邻的元素。如果第一个比第二个大,就交换它们两个;(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;(3)针对所有的元素重复...
2019-03-15 12:05:31
183
原创 《算法笔记》学习笔记
第3章入门篇(1)–入门模拟(2)3.4 日期处理codeup 1928 日期差值#include <iostream>using namespace std;int month[13][2]={ {0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{...
2019-03-13 18:38:14
418
原创 《算法笔记》学习笔记
`@TOC第3章入门篇(1)–入门模拟第3章入门篇(1)–入门模拟(1)3.1简单模拟模拟题是一类“题目怎么说,你就怎么做”的题目。这类题目不涉及算法,完全只是根据题目描述来进行代码的编写PAT B1001#include <iostream>using namespace std;int main(){ int n,cont=0; scanf("%d",&a.
2019-03-12 19:03:09
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人