算法设计与分析
文章平均质量分 55
算法
遇事不决ke问春风
我是清都山水郎
展开
-
最长公共子序列(LCS)——动态规划
最长公共子序列(LCS)子序列(subsequence): 一个特定序列的子序列就是将给定序列中零个或多个元素去掉后得到的结果(不改变元素间相对次序)。给定的字符序列: {a,b,c,d,e,f,g,h},它的子序列示例: {a,c,e,f} 即元素b,d,g,h被去掉后,保持原有的元素序列所得到的结果就是子序列。同理,{a,h},{c,d,e}等都是它的子序列。一个简单的例子(以求ABCB和BDCA的LCS长度为例)第一行和第一列初始化都为0A和B不相等,所填值为左方和上方最大的那个A原创 2021-03-24 11:39:26 · 315 阅读 · 0 评论 -
多重背包——动态规划
多重背包多重背包问题是由0-1背包问题引申而来,在解决多重背包问题之前我们先来了解一下0-1背包问题0-1背包问题问题描述:给定n种物品和一背包。物品i的重量是w,其价值为v,背包的容量为C。问:应该如何选择装入背包的物品,使得装入背包中物品的总价值最大?在选择装人背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。因此,该问题称为0-1背包问题。多重背包①有一个背包,其在n个维度上的容量为 [c1,c2…cn] 。这n个维度可以原创 2021-03-24 09:46:28 · 317 阅读 · 0 评论 -
常用的数据结构以及常用的算法
常用的数据结构以及常用的算法常用数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。一、线性表线性结构: 最常用、最简单的一种数据结构。线性表: 典型的线性结构。基本特点是线性表中的数据元素有序且有限。结构中:① 存在一个唯一的被称为“第一个”的数据元素;② 存在一个唯一的被称为“最后一个”的数据元素;③ 除第一个元素外,每原创 2021-03-15 15:46:36 · 1064 阅读 · 0 评论 -
算法设计与分析之冒泡排序
算法设计与分析之冒泡排序冒泡排序 1、每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。(冒出最大的那个气泡。) 2、核心 :拿着左边的数字和右边的数字比对,当左边〉右边的时候,交换位置。 3,2,7,6,8 第1次循环:(最大的跑到最右边。) 2,3,7,6,8(3和2比较,2< 3,所以2和3交换位置) 2,3,7,6,8(虽然不需要交换位置:但是3和7还是需要比较一次。) 2, 3,6,7,8(7...原创 2021-03-10 21:52:15 · 264 阅读 · 0 评论 -
算法设计与分析之快速排序
算法设计与分析之快速排序先从数列中取出一个数,作为基准数(简单取第一个数作为基准数)分区过程:将比基准数大的数字全放在其右边、小于等于它的数放在其左边再对左右区间重复第一步、第二步,直到各个区间只有一个数(递归)import java.util.Arrays;public class QuickSort { public static void main(String[] args) { //给出无序数组 int arr[] = {4,3,8,.原创 2021-03-10 21:54:33 · 393 阅读 · 0 评论