![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 78
章帮一(江南大学)
加油!!!!!!
展开
-
【算法】王晓东期末考题总结(一)
流水作业调度的目标是找到一个调度方案,使得完成所有作业的时间最短。最接近点对问题是一个经典的计算几何问题,目标是找到平面上一组点中距离最近的两个点。算法通过在已选择的节点中找到一条连接到未选择节点的最短边,将未选择节点加入集合,并输出最短边的信息。贪心算法解决单源最短路径问题的经典算法是Dijkstra算法。贪心算法解决最小生成树问题的一个经典算法是Prim算法。在动态规划的递推过程中,通过比较上一步的状态,选择最优的方式来更新状态。是一个有向图的邻接矩阵表示,source 是源节点的编号。原创 2023-12-28 17:24:34 · 1079 阅读 · 0 评论 -
【c++】vector queue stack的使用
熟悉c++里面数据结构相关语法原创 2023-03-16 16:21:50 · 184 阅读 · 0 评论 -
OJ每日刷题
每日两题,持续更新!题目来源:PIPIOJ1. **题目描述:** PIPI给你一个合法的括号序列,希望跟你按左括号下标递增顺序给出每对括号在序列中的下标。(下标从1开始)2.原创 2021-07-09 23:52:45 · 1222 阅读 · 1 评论 -
【算法】选择排序 C++
选择排序实现思想:在一组无序的数列中,选择一个数为基数,第一个数就好,其他数和它比较,记下比它小的数的下标,这个比它小的数继续和后面的数比较,找出比它小的数的下标,一轮下来就可以找到最小的数,把这个最小的数放在第一个位置,下一轮从第二个数开始比较,找到第二个数开始后面的最小数放在第二个位置…算法容易理解和实现,下面代码可以更多的关注到使用模板类型的使用上,以及自定义类型的排序上(重载操作符operator)。#include <iostream>using namespace std;原创 2021-04-15 20:13:23 · 157 阅读 · 0 评论 -
【算法】复习题汇总
目录练习一练习二练习三练习四练习五练习一算法是指解决问题的方法或过程,它包含一系列步骤,用来将输入数据转换成输出结果。(对)使用伪代码描述算法具有( )等优点。【ABD】A.容易修改B.易于转化为程序语言代码C.格式统一规范D.简单易懂算法通常具有( )的性质。【ABCD】A.有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限B.输出:至少有一个输出C.确定性:组成算法的每条指令清晰、无歧义D.输入:有零个或多个输入程序是算法用某种程序设计语言的具体实现,程序需满足算原创 2021-01-09 21:58:36 · 1035 阅读 · 0 评论 -
【算法】贪心算法
文章目录贪心算法概述活动安排问题最优装载贪心算法概述活动安排问题最优装载原创 2021-01-08 22:31:48 · 226 阅读 · 0 评论 -
【算法】动态规划(Dynamic Programming)
文章目录什么是动态规划算法数字三角形经典递归解法什么是动态规划算法总体思想(1)动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题(2)经分解得到的子问题往往不是互相独立的,有些子问题被重复计算多次(3)如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法(备忘录法)(4)图解:使用动态规划来求解的问题需要具备的基本要素包括:(1)重复子问题递归算法求解问题时,每次产生的子问题并不总是新问题,有些子原创 2020-11-23 23:30:55 · 16052 阅读 · 1 评论 -
【算法】备忘录法(记忆化搜索)
文章目录什么是备忘录法备忘录法的实现什么是备忘录法备忘录法是为了解决避免分治算法中相同子问题的重复求解。备忘录法为每个解过的子问题建立备忘录以备需要时查看,所以也称搜表法。备忘录法的控制与直接使用递归方法的控制结构相同。备忘录法又称记忆化搜索,自顶向下的方式解决问题。备忘录法的实现避免子问题重复被求解,我们可以定义一个数组,每次要计算一个子问题时,首先从数组中查询这个子问题的解,子问题解没有在数组中,说明没有计算过该子问题,我们可以计算该子问题,并将解放到数组中去,以便下次计算该子问原创 2020-11-11 22:18:52 · 6271 阅读 · 0 评论 -
【算法】分治法之棋盘覆盖
文章目录前言算法实现思想代码实现时间复杂度前言有关分治算法思想文章指路:【算法】分治算法什么是棋盘覆盖问题?(1)在一个2k×2k2^k×2^k2k×2k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。(2)在棋盘覆盖问题中,要用以下4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。(3)例如:我们需要用上面4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨原创 2020-11-05 12:43:38 · 7690 阅读 · 1 评论 -
【算法】线性时间选择——第k大(小)元素问题
文章目录前言分治算法之第k小元素分治算法之第k大元素前言问题:给定线性序列中 n 个元素和一个整数 k ,1 ≤ k ≤ n,要求找出元素中的第 k 小的元素 或者 第 k 大元素,要求是线性时间算法,即时间复杂度为O( n )。需要用到快速排序的分区思想,有关分治法思想和快速排序文章:【算法】分治算法分治算法之第k小元素问题:给定线性序列中 n 个元素和一个整数 k ,1 ≤ k ≤ n,要求找出元素中的第 k 小的元素 ,要求是线性时间算法,即时间复杂度为O( n )。设计思想:原创 2020-11-01 20:11:16 · 6787 阅读 · 2 评论 -
【算法】分治算法
文章目录基本思想复杂度分析二分搜索:有序数列快速排序随机快速排序归并排序基本思想定义:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。总体思想:将待求解的较大规模的问题分割成k个更小规模的子问题对这k个子问题分别求解如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归进行下去直到问题规模足够小、可以直接求出其解为止将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解适用条件:分治法所能解决的问题一般具有原创 2020-10-22 22:49:06 · 1707 阅读 · 0 评论 -
【算法】递归算法
递归算法详解一、递归算法递归的概念:直接或间接地调用自身的算法称为递归算法。递归的要素包括:递归表达式和递归结束条件。阶乘函数求某个数的阶乘:递归表达式:n!= n * (n-1)!递归结束条件:n=0时 0!=1实现代码public class Blog { public static void main(String[] args) { //测试: Sy原创 2020-10-17 09:52:45 · 960 阅读 · 0 评论 -
【算法】冒泡排序 选择排序 插入排序
文章目录一、冒泡排序二、选择排序三、插入排序一、冒泡排序实现思想:比较相邻的两个元素,第一个比第二个大,就交换他们,第一轮交换下来,最大的数一定在最后一个,第二轮下来,第二大的数就会在倒数第二的位置…例如对数组[2,1,4,8,6,3]进行冒泡排序:相邻数的比较,左边大,交换两个数第一轮:1,2,4,6,3,8 ==》找出了最大的数第二轮:1,2,4,3,6, 8 ==》找出了第二大的数第三轮:1,2,3,4,6, 8 ==》找出了第三大的数第四轮:1,2,3,4,原创 2020-10-15 12:36:01 · 151 阅读 · 1 评论