算法
Miss.Ren
这个作者很懒,什么都没留下…
展开
-
排序算法
十大排序算法1.冒泡排序(Bubble Sort)冒泡排序一种交换排序,他的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。冒泡的实现在细节上可以有很多种变化。2.1算法描述(1)比较相邻的元素。如果第一个比第二个大,就交换它们两个;(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;(3)针对所有的元素重复...原创 2019-03-15 12:05:31 · 169 阅读 · 0 评论 -
《算法笔记》学习笔记
第章4入门篇(2)–算法初步(2)4.1排序排序是基础算法之一,属于常见题型。由于考试中大部分只需要得到排序的最终结果,而不需要去写排序的完整过程,因此推荐直接使用C语言中的库函数qsort或者C++中的sort函数进行排序。排序题型的常用解题步骤相关结构体的定义对排序题,一定会在题目中给出个体的许多信息,这些信息在排序过程中一般都会用到,所以常常将他们存至一个结构体当中,然后用结构体...原创 2019-03-16 15:29:52 · 305 阅读 · 0 评论 -
《算法导论》学习笔记
第4章入门篇(2)——算法初步(5)4.5 二 分4.5.1 二分查找一个经典的问题:如何在一个严格递增序列A中找出给定的数x最直接的办法是:线性扫描序列中的所有元素,如果当前元素恰好为x,则表明查找成功;如果扫描完整个序列都没有发现给定的数x,则表明查找失败,说明序列中不存在数x。这种顺序查找的时间复杂度为O(N)。更好的办法便是使用二分查找:二分查找是基于有序序列的查找算法,该算法一开...原创 2019-03-20 18:10:05 · 252 阅读 · 0 评论 -
《算法笔记》学习笔记
`@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 · 185 阅读 · 0 评论 -
《算法笔记》学习笔记
第4章 入门篇(2)——算法初步4.3 递归4.3.1 分 治分治的全称为“分而治之”。分治法将原问题划分成若干个规模较小而结构与原问题相同或相似的问题,然后分别解决这些子问题,最后合并子问题的解,即可得到为原问题的解。分治法有三个步骤①分解 ②解决 ③合并。分治法作为一种算法思想,即可以使用递归的手段去实现,也可以通过非递归的手段去实现注:分治法分解出的子问题应当是相互独立、没有交叉的...原创 2019-03-18 15:13:45 · 129 阅读 · 0 评论 -
《算法笔记》学习笔记
第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 · 404 阅读 · 0 评论 -
《算法导论》学习笔记
第4章 入门篇(2)——算法初步(4)4.4 贪 心4.4.1 简单贪心贪心法是求解一类最优化问题的方法,它总是考虑在当前状态下局部最优(或较优)的策略,来使全局的结果达到最优(或较优)。显然,如果采取较优而非最优的策略(最优策略可能不存在或是不易想到),得到的全局结果也无法是最优的。而要获得最优结果,则要求中间的每步策略都是最优的,因此严谨使用贪心法来求解最优化问题需要对采取的策略进行证明...原创 2019-03-19 13:03:40 · 362 阅读 · 0 评论 -
《算法导论》学习笔记
第4章入门篇(2)——算法初步(7)4.7 其他高效技巧与算法4.7.1 打表打表是一种典型的用空间换时间的技巧,一般指将所有可能需要用到的结果事先计算出来,这样后面需要用到时就可以直接查表获得。打表常见的几种方法:在程序中一次性计算出所有需要用到的结果,之后的查询直接取这些结果在程序B中分一次或多次计算出所有需要用到的结果,手工把结果写在程序A的组中,然后在程序A中就可以直接使用这...原创 2019-03-26 21:19:46 · 151 阅读 · 0 评论