算法分析
凛冬&已至
课程学习
展开
-
LeetCode刷题 BFS算法应用
利用BFS算法解决问题 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地`区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。 我们这里说的距离是『曼哈顿距离』( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区...原创 2020-03-29 23:05:54 · 233 阅读 · 0 评论 -
归并排序
1.原理 采用分治法(Divide and Conquer)的一个非常典型的应用。 典型的分而治之思想的算法应用,归并排序的实现由两种方法: 自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法); 自下而上的迭代; 2.算法步骤 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 设定两个指针,最初位置分别为两个已经排序序列的起始位置; 比...原创 2019-11-19 20:23:40 · 65 阅读 · 0 评论 -
堆排序
1. 堆结构 大顶堆:每个结点的值都大于或等于其左右孩子结点的值,在堆排序算法中用于升序排列; 小顶堆:每个结点的值都小于或等于其左右孩子结点的值,在堆排序算法中用于降序排列 2. 堆排序 概念:利用堆的概念来排序的选择排序 平均复杂度:O(nlogn) 算法步骤: 创建一个堆 H[0……n-1]; 把堆首(最大值)和堆尾互换; 把堆的尺寸缩小 1,并调用 shift_down(0),目的是把新...原创 2019-11-19 19:45:00 · 88 阅读 · 0 评论 -
算法分析 动态规划解决矩阵连乘问题
矩阵连乘问题 问题: 给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1 是可乘的,i=1,2…,n-1。 如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。 1、按设计动态规划算法的步骤解题。 (1)找出最优解的性质,并刻划其结构特征。 (2)递归地定义最优值。 (3)以自底向上的方式计算出最优值。 (4)根据计算最优值时得到的信息,构造最优解(由子结构的...原创 2019-05-15 12:01:49 · 4127 阅读 · 0 评论 -
算法分析 统计数字问题
2.统计数字问题 (1)、问题描述 一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1, 2,…,9。 (2)、算法设计 给定表示书的总页码的10 进制整数n (1≤n≤10 ) 。编程计算书的全部页码中...原创 2019-05-15 12:03:17 · 5691 阅读 · 1 评论 -
算法分析 回溯法实现N皇后问题
N皇后问题原创 2019-06-30 10:46:39 · 511 阅读 · 0 评论