摘要:
什么是STL: STL(Standard Template Library)标准模板库,是“容器”的集合。 STL核心类库的基本概念: 1.容器(Containers):可容纳各种数据类型的数据结构(计算机存储,组织数据的方法)。 2.迭代器(Iterators):可依次存取容器中元素的东西。 3. 阅读全文
摘要:
1.链表基本概念: (1).结点(Node)组成; (2).数据域:存储数据元素本身; (3).指针域:存储邻接元素存储地址(位置); (4).链接方式: ①单链表:每个结点只有一个指针域; ②双向链表:每个结点有两个指针域; ③循环链表:是一个首尾相连的链表。 2.链表使用场景: 问题:存储一个班 阅读全文
摘要:
1.什么是递推: 递推是一种用若干步可重复运算来描述复杂问题的方法,递推法是一种重要的数学方法,也是编程中解决问题的一个重要方法。 2.递推的特征: (1).一个问题的求解需要一系列计算,这一系列的计算步骤中存在着某种关系。 (2).在计算时,如果可以找到前后过程中的数量关系(即递推式),那么就可以 阅读全文
摘要:
1.什么是递归: 递归就是函数的自我调用来求出问题的解。如果一个数列项与项之间存在关联性,那么就可以用递归实现。 原来: 如果一个函数可以求fun(n),那么该函数就可以求fun(n-1),就形成了函数的自我调用。(※注意:一般起始项是不需要求解的,是已知条件) 2.递归求解问题的过程: ①找出规律 阅读全文
摘要:
什么是贪心算法: 贪心算法(又称贪婪算法),是指在对问题求解时,总是做出当前最优解和最好选择。也就是说,不从整体最优解上加以考虑,它所做出的是在某种意义上的局部最优解。贪心算法的核心思想是在每一个决策点上,都做出当前看起来最优的选择,而不考虑这种选择对后续决策的影响,期望通过一系列局部最优的选择来达 阅读全文
摘要:
★二分查找: 1.二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序结构,而且表中元素按关键字有序排列。 2.二分查找时间复杂度: 因为二分查找每次排除掉一半的不合适值,所以对于n个元素的情况: 一次二分剩下:n/2; 两次二分剩下: 阅读全文
摘要:
①加法: string jia(string s1,string s2){ string r; int a[2000]={0},b[2000]={0},c[2000]={0}; for(int i=0;i<=s1.size()-1;i++) a[i]=int(s1[s1.size()-i-1]-'0 阅读全文
摘要:
★如何计算算法复杂度: ①乘法原则: 例子1: for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ sum++; } } 上面的代码中,for内循环执行了n次,这个for内循环被执行了n遍。所以这个代码的执行次数为nn,复杂度就是n2。 例子2: for(in 阅读全文
摘要:
★什么是分治: 分治指把问题分为多个小问题,对每个小问题进行求解(小问题可以继续分),将所有小问题的解和在一起,就是这个问题的解。 主问题 | ————————————————————————————————————— | | | | | | | 问题1 问题2 问题3 ………… 问题4 问题5 问 阅读全文