算法复习-研一上

算法复习 

包含主题: 贪心算法 , 分治法,动态规划,回溯法,分支限界,线性规划

关键词:最优子结构

Q:贪心与动态规划中间的联系和区别 p93 后面总结 (背部问题,0-1背包问题)

递归分治算法

基本思想:将一个大的问题分成若干小的子问题问题,分而治之

一般步骤:1.分解将原问题分为若干规模小,相互独立与原问题形式相同的问题   2.求解,求解各个子问题,当问题被划分的足够小的时候,就能很容易求解     3.合并,将子问题逐层合并,得到最后的解

经典问题

二分搜索:

合并排序(将想要排序的序列分为两个大小相同的子集,然后分别排序,再合并 O(nlogn)):划分策略是类似二分搜索,通过递归来一层层划分直至只有一个,再一层层合并

快速排序:(将序列按照a[i]来划分两个子集,第一个子集里面都比a[i]小,第二个子集都比a[i]大) :

大整数乘法(若要精确的求出大整数在乘法运算中所有位数上的值,需要用软件的方法来求,):

有重复和无重复排列问题

贪心算法

基本思想:贪心算法总是做出当前最好的选择,他期望通过局部最优解来得到全局最优解

能利用贪心算法来求解的算法一般有两个特性:贪心选择性质(原问题的整体最优解可以通过一系列的局部最优的选择得到), 最优子结构(一个问题的最优解,包含其子问题的最优解)(因其具有最优子结构,可以用动态规划来求解,但是贪心会更加简单)

经典贪心选择问题

选择排序 每次从剩下的序列里选出最大的一个,形成最后的最优解

冒泡排序

最优装载(如何将最多的货物装上船) 采用重量最轻者优先的贪心策略来进行

活动安排(在会议时间不冲突的情况下,用有限的时间来进行最多的会议) 1.贪心策略的选择,a.最早开始与时间不冲突策略,b.最短持续时间与不冲突策略 c.最早结束时间与不冲突策略 我们选择C贪心策略,

求哈夫曼编码:(前缀码,任一字符的代码都不能是其他字符的前缀求得最优的编码方案) 贪心策略:在所有节点中选取权值最小的两个节点作为新树的左右节点,组成一个新的节点,权值为两者之和

单源最短路径(dijkstra算法,求得最短路径(插值法)) :贪心策略,从初始状态开始,一个一个的加入与之相连的值,然后求出当前所有节点的最短路径,当将所有的点都加入时,就是最后的结果

最小生成树:

prim算法(加边): 贪心策略:在当前的子树中,选取与之相连的最小权值且不形成环的边

kruskal算法(选边): 贪心策略:在所有的边中,选取最小的且不形成环的边

多机调度问题:

练习题

时间: 2024-10-19 11:22:20

算法复习-研一上的相关文章

计算机网络复习-研一上

网络知识点 体系结构 OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层.TCP/IP分层(4层):网络接口层. 网际层.运输层. 应用层.五层协议 (5层):物理层.数据链路层.网络层.运输层. 应用层.每一层的协议如下:物理层:RJ45.CLOCK.IEEE802.3 (中继器,集线器)数据链路:PPP.FR.HDLC.VLAN.MAC (网桥,交换机)网络层:IP.ICMP.ARP.RARP.OSPF.IPX.RIP.IGRP. (路由器)传输层:TCP.UD

算法复习——有源汇上下界可行流(bzoj2396)

题目: Description We are supposed to make a budget proposal for this multi-site competition. The budget proposal is a matrix where the rows represent different kinds of expenses and the columns represent different sites. We had a meeting about this, so

C语言排序算法复习

排序算法有很多种,这里在复习和分析的基础上,做一个自己的总结: 首先要知道有哪些排序算法,google一下,有云C语言7大经典排序算法(也有8大).主要包括冒泡排序,快速排序,选择排序,插入排序,希尔排序,归并排序,堆排序,8大的还有基数排序.各有各的版本,代码写法也各不相同.所以这里以整理思路为先,代码只是作为自己的一个备份. 搞清楚的概念:稳定排序和不稳定排序,就看序列中两个值相等的数,排完序之后的相对位置是否改变,如果改变了就不稳定. 内部排序和外部排序,只用到内存即可完成排序的就叫内部排

算法复习计划

写在前面 随着四月的到来, 离省选越来越近了. 从NOIP到现在, 学到了很多很多东西, 有的学的比较深入, 有的只是略知一二 从明天开始, 进行针对省选的算法复习计划. 省选前完成. 重点是对算法的理解和应用, 还会注重模板习惯的养成 计划内容 1. 数据结构 一直觉得我数据结构学的还可以, 不过列出来发现会的也没多少. 少就少吧, 省选够用就行... 线段树 树状数组 并查集 哈希表 STL treap splay 树链剖分 主席树(可忽略) 字符串(KMP, 后缀数组) 2. 图论 掌握经

复习struts2+jsp上传文件

有个form <form action="upload" id="upForm" method="post">     <input type="file" id="att" name="attachment" accept="img/jpeg">     <input type="submit" value=&quo

此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转

感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-------------------------- 此文记录了我从研二下学期到研三上学期的找工历程,包括百度.腾讯.网易.移动.电信.华为.中兴.IBM八家企业的面试总结和心得,希望能够帮助到正在找工的朋友和师弟师妹们,并纪念找工这段怀揣着希望和梦想,伴随着紧张和压力,同时令我受益匪浅的日子. (本文

研一上学期期末考试结束之后

今天上午考完了研一上学期的最后一门课----计算机网络. 下午休息了一会儿.感觉考完试后没有什么可做了,就有点小无聊. 觉得身上没有什么力气,无精打采. 晚上和同学一块吃了晚饭.晚上走在路上,北京的冬天确实很冷. 回来后来和同学聊聊天. 现在需要考虑如何安排接下来的生活和工作. 首要原因是我不想“被安排”. 我的意思是想说,不想在到了安排放假的时候,就回家.回家之后,被动面临的实际问题(最关键的是我还没有找到女朋友)被问及以后的工作,结婚这些实际的问题. 这算是一种逃避吧. 我想主动采取措施.

用DPM(Deformable Part Model,voc-release3.1)算法在INRIA数据集上训练自己的人体检测模型

我的环境 DPM源码版本:voc-release3.1 VOC开发包版本:VOC2007_devkit_08-Jun Matlab版本:MatlabR2012b c++编译器:VS2010 系统:Win7 32位 learn.exe迭代次数:5万次 数据集:INRIA 人体数据集,等 步骤一,首先要使voc-release3.1目标检测部分的代码在windows系统下跑起来: 在Windows下运行Felzenszwalb的Deformable Part Models(voc-release4.

排序算法复习

排序算法复习 作者:vpoet mails:[email protected] 注:转载请注明出处 #include <iostream> #include <windows.h> using namespace std; void Bubble_Sort(int UnSort[],int length); void Select_Sort(int UnSort[],int length); void Insert_Sort(int UnSort[],int length); vo