笔记
文章平均质量分 62
WJ.Polar
这个作者很懒,什么都没留下…
展开
-
2021-11、1-11、7周报
递归:使用递归的情况:1.问题的定义时递归的例如,阶乘就是上一个数的阶乘乘以当前数本身2.问题的解法存在自调用(算法直接或间接地调用自身)例如:折半查找法使用递归的要点:1.问题具有可借用类同自身的子问题的性质2.确定递归终止条件实例:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())",原创 2021-11-07 15:53:38 · 111 阅读 · 0 评论 -
10.25-10.31周博客
动态规划:dp一般用于解决多阶段决策问题。每个阶段都要做一个决策,全部的决策组成一个决策序列,要你求一个最好的决策序列使得这个问题有最优解一、适用动态规划解决的问题:1.计数问题:解决问题有多少种方案2.优化问题:求最大值或最小值问题二、使用DP的要求1.最优子结构2.重复子问题:求解子问题时,会出现重复计算(overlapping)。如果没有重复计算,则退化成分治算法(divide and conquer)3.无后效性:调用子问题最优解时,子问题的最优解不发生改变。三、动态规划的使用方法原创 2021-10-31 13:47:00 · 124 阅读 · 0 评论 -
数据结构——图
1.稠密图的基本实现:#ifndef UNTITLED1_DENSEGRAPH_H#define UNTITLED1_DENSEGRAPH_H#include #include #include using namespace std;class DenseGraph{private://n是图中节点个数,m是边数int n,m;//directed指明图是有向的还是无向的bool directed;vector<vector> g;public:DenseGrap原创 2021-06-07 13:38:40 · 99 阅读 · 0 评论 -
数据结构——二叉树
(一)二叉树的基本实现1.二叉树的定义:import java.util.*;//BST支持泛型,因为每个节点都大于它的左孩子,小于它的右孩子,所以保存的元素得要是可比较的public class BST<T extends Comparable> {//定义内部节点类private class Node{ public T e; public Node left; public Node right; //节点类的构造函数 public N原创 2021-05-30 12:22:07 · 77 阅读 · 0 评论 -
数据结构——链表
去去去原创 2021-05-25 10:16:19 · 413 阅读 · 0 评论 -
数据结构——栈和队列
一、栈(一)栈的基本实现接口Stack:public interface Stack {int getSize();boolean isEmpty();void push(T e);T pop();T peak();}ArrayStack继承Stack这个接口,使用之前定义过的Array类:public class ArrayStack implements Stack{//基于数组实现Array<T> array;//构造函数,初始化对栈的容量public A原创 2021-05-18 11:10:02 · 123 阅读 · 0 评论 -
数据结构——动态数组
数据结构一、数组简单的时间复杂度分析O:运行时间和输入数据之间的关系(渐进时间复杂度)O(1):线性关系O(n^2):T=knn+b原创 2021-05-14 18:26:11 · 396 阅读 · 0 评论 -
第二章
线性表的抽象数据类型定义:2-4线性表的顺序表示和实现顺序表的存储结构:顺序表中基本操作的实现:1.顺序表的初始化:2.顺序表的取值:3.顺序表的查找:4.顺序表的插入:5.顺序表的删除:2-5线性表的链式表示和实现单链表的存储结构:首元结点、头结点、头指针:头结点的作用:1.使首元结点能像其它结点一样处理2.便于空表和非空表的统一处理单链表基本操作的实现:1.初始化:2.取值:3.查找4.插入:5.删除:创建单链表:1.前原创 2021-02-09 22:19:35 · 93 阅读 · 0 评论 -
第一章
1-2基本概念和术语1、数据:能输入到计算机中并被计算机程序处理的符号的总称数据元素:数据的基本单位,通常作为一个整体进行考虑和处理,如学生基本信息表中一名学生的信息数据项:组成数据元素的最小单位,如学生的学号、姓名数据对象:性质相同的数据元素的集合,是数据的一个子集,如学生基本信息表2、数据结构数据结构:相互之间存在一种或多种关系的数据元素的集合结构:数据元素间的关系数据结构包括逻辑结构和存储结构两个层次逻辑结构:要素:数据结构和关系分类:集合结构:数据元素除了在同一集合外无其他关原创 2021-02-09 21:32:45 · 84 阅读 · 0 评论 -
第十三章 拷贝控制 466
13-1拷贝、赋值与销毁1、拷贝构造函数拷贝构造函数的第一个参数必须是引用类型,一般都是const引用,也可以是非const引用合成拷贝构造函数如果我们没有为一个类定义拷贝构造函数,编译器会为我们定义一个。即使我们定义了其它构造函数,编译器也会为我们合成一个拷贝构造函数对某些类来说,合成拷贝构造函数用来组织我们拷贝该类类型的对象合成的拷贝构造函数会将其参数的成员逐个拷贝到正在创建的对象中编译器从给定对象中依次将每个非static成员拷贝到正在创建的对象中类类型成员会使用拷贝构造函数来拷贝,原创 2021-01-31 18:20:11 · 170 阅读 · 0 评论 -
第十二章 动态内存 426
12-1动态内存与智能指针动态内存的管理通过一对运算符来完成:new:在动态内存中为对象分配内存空间并返回一个指向该对象的指针,可以选择对对象初始化delete:接受一个动态对象的指针,销毁该对象,并释放与之关联的内存两种智能指针:shared_ptr允许多个指针指向同一个对象unique_ptr“独占”所指的对象标准库还定义了一个名为weak_ptr的伴随类,它是一种弱引用,指向shared_ptr所管理的对象三种类型都定义在头文件memory中1、shared_ptr类智能指针也是模原创 2021-01-29 23:26:05 · 86 阅读 · 0 评论 -
第十一章 关联容器 400
两个主要的关联容器:map、setmap中的元素是 关键字—值 对set中只有关键字标准库提供8个关联容器,8个容器的不同体现在三个方面:(1)是map 还是 set(2)要求不重复关键字 还是 不允许重复关键字——容器名前加multi(3)有序 还是 无序——容器名前加unordered11-1使用关联容器使用mapmap类型通常通常被称为关联数组单词计数程序:定义map必须指定关键字和值得类型string作为下标,每读取一个word,如果word还未在map中,下标运算符会创原创 2021-01-26 21:29:57 · 86 阅读 · 0 评论 -
第十章 泛型算法 362
10-1概述标准库算法find传给find的前两个参数是表示元素范围的迭代器,第三个参数是要搜索的值如果搜索成功,则返回第一个与给定值相等的迭代器如果搜索失败,则返回find的第二个参数算法如何工作只要有一个迭代器可以用来访问元素,find就完全不依赖于容器类型(甚至无需理会保存元素的是不是容器)迭代器令算法不依赖于容器,但算法依赖于元素类型的操作10-2初始泛型算法1、只读算法一些算法只会读取输入范围中的元素,而不会改变其值例如find、count、accumulateaccum原创 2021-01-25 15:10:34 · 159 阅读 · 0 评论 -
第九章 顺序容器 318
9-1顺序容器概述所有顺序容器都提供了快速访问的功能,同时它们可能的缺点是:向容器中添加或从容器中删除不方便不按顺序访问不方便9-2容器库概览有的操作不是所有容器都提供的,每个容器都定义在头文件中对容器可以保存元素类型的限制1、迭代器forward_list不支持递减运算符(–)迭代器的算术运算只能应用于string、vector、array、deque迭代器范围迭代器范围由一对迭代器表示,比如begin和end、first和last使用左闭合范围的编程假定使用如下:原创 2021-01-22 22:49:55 · 104 阅读 · 0 评论 -
第二章
int,long,long long的表示范围不一样无符号数一定大于0;有符号数可正可负long和double表示的精度不一样带负号的无符号数要把负数转化成无符号数8位有符号二进制的模是256(-128——127)8位无符号二进制的模是256(0——255)...原创 2021-01-09 10:39:37 · 71 阅读 · 0 评论