在GitHub上创建名为springcloud-config的新Repository:
留意git的URL地址:https://github.com/pbjlovezjy/springcloud-config.git
留意git的SSH地址:[email protected]:pbjlovezjy/springcloud-config.git
假如GitHub的用户名为:pbjlovezjy
密码:Panbinjie20021105
第1步:打开Git bash设置用户名和邮箱
git config --global user.name "填你GitHub的用户名"
git config --global user.name
git config --global user.email "填你自己GitHub注册的邮箱"
git config --global user.email
第2步:在Git Bash中输入以下代码,创建密钥:
生成新的SSH密钥对:ssh-keygen -t rsa -b 4096 -C "[email protected]"
启动 SSH agent:eval "$(ssh-agent -s)"
添加你的私钥到SSH agent中:ssh-add ~/.ssh/id_rsa
复制公钥到剪贴板:clip < ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDGxU+Ha4PAL5y6p2WUBR1Ll/pJKJA8yBF/4HOhFIukZKh2ZK/1o62N3lytHm5WKbjNfOSKyUBXgkb5+ZflB/HWI+Id3vP8uU/rk5VLuZIU18FhceK2nu5jAA897WGLEOpBJ2/ntQUQDUzeI5ak2y+zO9XQpXEpJ9n/HVxW444vVeIpc4VHKIkv/wf6LU+A5WG1OcAPWQHAyC/e1Ulkx8vUNqhk88WiXIoutAyDusXJGn+xLA52Pb0ojXTrfgDzfMaXZtgAmtAgWmhv51+tTjbiPNecN0AzdBjwQtAEcZ393HDsbf9Vwg3vPgqY9ivfMJ9UwM4czFKWIbHHk0SK5B+YH+rFjk5RnU9KE0DFcKHlwhUWwrSrjspeGQ4rzNwEAlirp8KjiHLkaxF6IV1ZvdZZ5AiOHR4tYR9i9I6n/QX7hQoCxO0YIPyTRZUtryZejW+ocFDZ0qKTo16/X4IeIQJvatTApdwe7LhG15+tvhMF5J3HtnF4e4J3GpYoZkUXk11Vvi3wsDnJHm0j7C2KwTaDlaRzv2otGv8QcpgaI9cN+9YOdhrFAVKL+XwhhYYPl66r+x4tln++9mfTc7m2QlhDDFLZ1eYxp+P4WQO4XcxPFxQt5jhXtyns3EuyLqY//6/OYONGmeV/BktRmLYeUjIUMWFwWjp1v8PlwL1zP99rQ== [email protected]
第3步:打开GitHub粘贴密钥,完成关联:
点击右上角的头像,选择 "Settings":
在左侧菜单中选择 "SSH and GPG keys":
点击 "New SSH key":
在 "Title" 字段中,为你的密钥添加一个描述性的名称:
在 "Key" 字段中,粘贴你之前复制的公钥:
点击 "Add SSH key":
在本地磁盘D盘下新建44文件夹,在44文件夹下创建SpringCloud2020
启动gitbash然后cd d:/44/SpringCloud2020
git clone [email protected]:zzyybs/springcloud-config.git
这里解释一下git clone命令就是从github远程仓库上克隆东西到本地磁盘:
如上面例子,要获取东西的来源是:[email protected]:zzyybs/springcloud-config.git,这是个GitHub仓库,可能是别人的仓库。
东西存储到/d/44/SpringCloud2020这个本地地址上。
如下是克隆后的结果:
在spring-config文件夹下的空白处单击右键,进入Git Bash
然后输入:git -c http.sslVerify=false push -u origin master
然后会弹出一个界面,选择 sign in with your browser,选择授权git系统,然后输入密码即可:
可以直接将文件夹内容提交至仓库:
假如我们现在删掉了本地文件夹里的README.md,我们想把这一修改同步到GitHub上,要如何做呢?
首先我们输入:git add . (注意最后有个点)将所有修改的内容放入缓冲区:
然后输入:git commit -m '随便填写'
即可实现GitHub同步本地文件夹的内容。
假设我们现在修改了GitHub上的内容,添加了一个README.mdd文件夹:
此时,我们本地没有README.md文件,假如我们想同步远程仓库和本地:
只需要输入:git -c http.sslVerify=false pull --rebase origin master
文件就被我们同步到了本地:
找到java在电脑上的安装位置,我的位置:E:\javajdk\jre\lib\security
算法设计与分析【期中+期末复习知识点总结】
答题模板 答题规范 如何答题
第1章:算法概述
算法:具有输入、输出、确定性、有限性。
程序(算法+数据结构=程序):具有输入、输出、确定性(注意:程序可以不满足有限性,如操作系统是在无限循环中执行的程序)。
衡量算法好坏的方法:正确性(有限时间正确结果)、简明性、效率(时间、空间)、最优性
O:表示算法的渐近上界,如果算法的时间复杂度为O(g(n)),使得对于任何输入规模n,算法的运行时间都不会超过c * g(n),即算法的时间复杂度不会超过g(n)的某个常数倍,此谓上界。
Ω:表示算法的渐近下界,如果算法的时间复杂度为Ω(g(n)),使得对于任何输入规模n,算法的运行时间都不会低于c * g(n),即算法的时间复杂度不会低于g(n)的某个常数倍,此谓下界。
Θ:表示算法的渐近紧确界,如果算法的时间复杂度为Θ(g(n)),使得对于任何输入规模n,算法的运行时间都被夹在c1 * g(n)和c2 * g(n)之间,即算法的时间复杂度大约是g(n)的某个常数倍,此谓同阶。
第2章:递归与分治
分治法:将规模为n的问题分解为k个规模较小的子问题,子问题间互相独立且与原问题相同。通过递归求解子问题,最后将解合并,可实现对原问题的求解。
(个人总结:分治法的核心思想是:分解和递归。即将大问题分解为子问题,因为子问题性质与原问题相同,因此可以使用相同的递归式进行求解。
注意子问题间的求解必须是独立的,否则会做很多不必要的重复工作,如果不独立的话选择动态规划会比较好。)
分治法求解过程:分解 -> 递归求解 -> 合并。
分治算法典型问题:二分搜索、合并排序、快速排序、大数乘法、矩阵乘法、棋盘覆盖、最近点对问题、线性时间选择、循环赛日程。
排序方法 | 最好时间 | 平均时间 | 最坏时间 | 辅助空间 |
插入排序 | ||||
堆排序 | ||||
冒泡排序 | ||||
快速排序 | ||||
归并排序 |
分治答题策略:简单描述所设计的算法,要重点说明是如何将问题划分为子问题(分解策略),如何进行递归,给出递归方程,合并过程如果有就一句话带过即可,注意要在最后写上时间复杂度和空间复杂度。
第3章:动态规划
动态规划:将规模为n的问题分解为k个规模较小的子问题,子问题间彼此关联且与原问题相同。通过将子问题的解记录下来,可以避免重复计算。动态规划常用于解决具有重叠子问题和最优子结构特性的问题,通常使用表格法或记忆化搜索来实现,最终得到原问题的最优解。
重叠子问题:在递归执行的过程中,同一个子问题会被多次遇到和解决,通过存储已解决子问题的答案,动态规划可以避免对相同子问题的重复计算。
最优子结构:一个问题的最优解包含其子问题的最优解。
(个人总结:动态规划与贪心不同的一点在于:子问题间不是完全独立的,换句话说子问题间具有关联或者说是依赖的关系,因此可以用表来记录已解决的子问题答案,后续操作用到时只需查表即可,不用再重新计算,可以节约开销)
动态规划算法典型问题:最长公共子序列、最大子段和问题、凸多边形最优剖分、多边形游戏、图象压缩、电路布线、流水作业调度、0-1背包问题。
动态规划答题策略:简单描述所设计的算法,要重点分析最优解结构(满足最优子结构和重叠子问题性质);然后建立递归关系,给出递归方程;简单描述求解过程,给出表的复杂度;最后千万要记得给出时间和空间复杂度。
第4章:贪心算法
贪心选择性质:所求问题的整体最优解可以通过一系列局部最优的选择来达到。
证明满足贪心选择性质:证明每一步所做出的贪心选择最终将获得问题的整体最优解。(首先考察问题的一个整体最优解,并证明可修改这个最优解,使其以贪心选择开始。在做出贪心选择后,原问题简化为规模更小的类似子问题。用数学归纳法证明,通过每一步做贪心选择,最终可得到问题的全局最优解。)
最优子结构性质:一个问题的最优解包含其子问题的最优解。
贪心算法典型问题:装船问题、哈夫曼编码问题、单源最短路径问题、最小生成树问题、多机调度问题。
贪心答题策略:先描述所设计的算法,然后简单证明算法的正确性,包括贪心选择性质和最优子结构性质,最后给出时间复杂度。