——————算法——————
算法
Wonz
后端 -> 全栈 -> 后端
技术很菜,但一直在学习。
「人们会被自己热爱的事物改变」
展开
-
求职 | 华为研发工程师编程题个人题解【C++】【Python】
华为研发工程师编程题【C++】【Python】【数学】【数组】【字符串】问题1有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶...原创 2020-02-17 21:11:11 · 606 阅读 · 0 评论 -
南邮《算法分析与设计》期末复习 CH9:分枝限界法
一、分枝限界法分枝限界法广度优先搜索问题的状态空间树,用剪枝函数(往往是限界函数)进行剪枝,通常求问题的最优解。二、分枝限界法与回溯法的共同点都是在问题的状态空间树上搜索问题解的算法,都通过活结点表实现。都用约束函数剪去不含答案结点的分枝,用限界函数剪去不含最优解的分枝。三、分枝限界法与回溯法的区别(1)求解目标不同:回溯法的求解目标是找出解空间树中满足约束条件的所有可行解;而分枝限界法...原创 2019-02-12 15:01:40 · 3324 阅读 · 1 评论 -
南邮《算法分析与设计》期末复习CH8:回溯法
一、状态空间树——描述问题解空间的树形结构问题状态:树中每个结点。解状态:若从根到树中某个状态的路径代表一个候选解元组,则该状态为解状态。答案状态:若从根到某个解状态的路径代表一个可行解元组,则该解状态为答案状态。最优答案结点:如果求解的是最优化问题,还要用目标函数衡量每个答案结点,找出其中目标函数取最优值的最优答案结点。二、穷举法使用深度优先或广度优先搜索方法,检查状态空间树中...原创 2019-02-12 15:00:00 · 4556 阅读 · 1 评论 -
南邮《算法分析与设计》期末复习CH7:动态规划
一、动态规划法的基本要素最优子结构性质:最优子结构性质——用动态规划法求解的前提。当一个问题的最优解中包含了其子问题的最优解时,称该问题具有最优子结构性质。重叠子问题性质:(递归算法求解问题时)每次产生的子问题并不总是新问题,有些子问题被反复计算多次,这种性质称为子问题重叠性质。二、动态规划法求解思路——自底向上、保存子问题的解三、动态规划法求解步骤1)刻画最优解的结构特...原创 2019-02-12 14:58:07 · 2695 阅读 · 0 评论 -
南邮 | 算法分析与设计实验四:密码算法
题目:构造一个简单的RSA公开密钥系统。程序代码#include <iostream>using namespace std;int MOD;//Óɹ«¿ªÃÜÔ¿eºÍn£¬Çó˽ÓÐÃÜÔ¿dint ext_euclid(int a, int b, int &x, int &y) { if(b == 0) { ...原创 2019-02-08 13:10:09 · 3030 阅读 · 0 评论 -
南邮 | 算法分析与设计实验三:回溯法
题目:用回溯法求解N皇后问题。程序代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>using namespace std;int count = 0;//判定两个皇后是否在同一列或在同一斜线上bool Place(int k, i...原创 2019-02-08 13:09:19 · 3677 阅读 · 0 评论 -
南邮 | 算法分析与设计实验二:动态规划法
题目:用动态规划法实现求两序列的最长公共子序列。程序代码#include <iostream>#include <cstring> //memset需要用到这个库#include <algorithm>using namespace std;int const MaxLen = 50; class LCS{public: LC...原创 2019-02-08 13:08:22 · 4451 阅读 · 2 评论 -
南邮 | 算法分析与设计实验一:分治策略
题目:用分治法实现一组无序序列的两路合并排序和快速排序以及其它排序算法。程序代码#include<iostream>using namespace std;#include<time.h>#include<algorithm>#include<stdlib.h>#include <cstdio>#include &l...原创 2019-02-08 13:07:08 · 5126 阅读 · 0 评论 -
南邮《算法分析与设计A》2018-2019学年第一学期期末考试回忆
2019.1.8 13:30-15:20 《算法分析与设计A》考试刚考完,回忆一下题目。先总结一下:感觉难度完全不是自己想象的那样,没时间检查,好多不确定不会做。主要还是自己复习的不好。一、选择题算法的五个特性动态规划法的特征分支限界法的概念一道背包问题求最大价值克鲁斯卡尔算法,加入新结点之后,判断是否和原来的生成森林形成回路,其中生成森林用了什么数据结构。(同学说是并...原创 2019-01-08 16:19:08 · 6575 阅读 · 9 评论 -
分治法
分治法——将一个复杂的问题分解成若干个规模较小、相互独立,但类型相同的子问题求解;然后再将各子问题的解组合成原始问题的一个完整答案,这样的问题求解策略就叫分治法。设计思想:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。递归经典例题:阶乘函数 //迭代算法int factLoop(int n){ int k,f; k...原创 2018-08-31 16:56:52 · 2165 阅读 · 0 评论 -
算法分析基础
看了第二章之后,发现算法和数学关系挺大的,很多的都要公式推导。公式明天慢慢用语法进行修改。一、渐近上界记号 O如果存在正常数 c 和自然数 n0,使得当 n≥n0 时有 f(n) ≤ cg(n),则称函数 f(n) 当 n 充分大时有上界,且 g(n) 是它的一个上界,记做 f(n)=O(g(n)) 。即 f(n) 的阶不高于 g(n) 的阶。 定理 2-1定理...原创 2018-08-31 16:46:40 · 2070 阅读 · 0 评论 -
南邮算法 homework1-13:计算二项式系数
题目写一个递归算法和一个迭代算法计算二项式系数。代码//计算二项式系数#include&amp;lt;iostream&amp;gt;using namespace std;/*//递归算法int n_factorial(int n){ if(n != 1){ return(n * n_factorial(n-1)); //不是递减,而是参...原创 2018-08-31 16:40:26 · 1882 阅读 · 0 评论 -
南邮算法 homework1-9:n! 递归函数
从今天开始,系统地自学算法,用的是学校教材:陈慧南老师的《算法设计与分析——C++ 语言描述》(第 3 版)。题目设计一个递归函数计算 n!。代码//n! 递归函数#include&amp;lt;iostream&amp;gt;using namespace std;int n_factorial(int n){ if(n != 1){ //--...原创 2018-08-31 16:39:18 · 474 阅读 · 0 评论