![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法基础
文章平均质量分 94
算法基础
i学学学学学习
YehcNetCoding
展开
-
算法复习
第1-2章:衡量算法:时间复杂度和空间复杂度时间复杂度:重复基本操作的运行的次数空间复杂度:一次基本操作需要执行的步骤次数增长次数:log2n < n < n*log2n < n^2 < n^3 < 2^n < n!最优情况:算法运行最快的时候。最差情况:算法运行时间最长的时候。平均效率:在典型或随机的情况下,算法会是什么情况。(顺序查找平均效率:(p*(n+1)/2) +n*(1-p) )渐进符号的含义O(读作“O”) 算法最坏情况的度量Ω (读作原创 2021-01-19 23:08:36 · 872 阅读 · 0 评论 -
贪心算法---跳跃游戏
一、题目:leetcode 55题跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3步到达最后一个位置。 示例 2:示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0原创 2020-12-01 19:16:01 · 430 阅读 · 0 评论 -
递归回溯算法一文读懂详解图文
一、递归算法的定义原创 2020-11-26 08:58:55 · 2704 阅读 · 1 评论 -
贪心算法介绍
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解 。贪心算法的本质就是每一步的局部最优解组成整体的最优解。例如,有十个数,每次只能取一个数,取三次如何取才能得到三数之和最大?那肯定是每次取最大的数,然后取三次就是三数之和最大,这就是每一步都取最优解,从而从整体上原创 2020-11-25 00:57:57 · 857 阅读 · 0 评论 -
背包问题----动态规划
一、动态规划动态规划算法的关键在于解决冗余,这是动态规划算法的根本目的。把问题分解成若干个子问题,然后记录下每个子问题的解,避免重复计算,再从众多子问题中选出最优解。动态规划详解问题描述:...原创 2020-11-24 00:50:06 · 278 阅读 · 0 评论 -
一文读懂动态规划---图文详解
一、动态规划原创 2020-11-22 12:38:04 · 847 阅读 · 1 评论 -
堆排序图文详解
一、堆的定义堆可以定义为一课二叉树,树的节点中包含一个值,并且满足下面两个条件:树要求是一棵完全二叉树;树具有父母优势,即父节点比子节点值要大(小根堆相反);左边的是大根堆,右边的不属于堆根据以上堆的两个特性,不难看出在堆中,值是从上到下排序的即从任何一个根节点出发到达叶子节点的值是递增 (递减) 的 (假设堆中不存在相等的元素)。但是,值得注意的是,在同一层次的元素中,他们的是没有任何的直接关系。由于堆是一棵二叉树,所以堆具有以下特性:(默认大根堆)n个节点的二叉树的高度为 (原创 2020-11-19 20:07:38 · 974 阅读 · 0 评论 -
螺钉螺母匹配问题---快速排序
问题描述:假设我们有n个直径各不相同的螺钉以及n个相应的螺母。我们一次只能比较一对螺钉和螺母,来判断螺母是大于螺钉、小于螺钉还是正好适合螺钉。然而,我们不能拿两个螺母做比较,也不能拿两个螺钉做比较。我们的问题是要找到每一对匹配的螺钉和螺母。为该问题设计一个算法,它的平均效率必须属于集合O(n*logn)。通常来说,看到平均效率O(n*logn),一般都会想到是快速排序。如果有不会快速排序的可以看上一篇文章 点击这里跳转。知道用快速排序,但是应该如何实现呢?本文来讲解一下up主的思路:把.原创 2020-11-13 10:07:43 · 3819 阅读 · 0 评论 -
快速排序的三种实现方式
快速排序是一种分治法的排序算法,它在排序算法题中经常会用上。本篇文章来讲解一下快速排序的三种分界思想原创 2020-11-12 23:46:06 · 1312 阅读 · 0 评论