算法
文章平均质量分 96
Tyler_Zx
只有足够的努力,才能让一切看起来都毫不费力!
展开
-
剑指 offer 编程题 C++ 版总结(下)
剑指 offer 编程题总结(下)原创 2020-11-18 12:22:00 · 1315 阅读 · 0 评论 -
剑指 offer 编程题 C++ 版总结(中)
剑指 offer 编程题总结(中)原创 2020-11-15 22:51:26 · 1223 阅读 · 0 评论 -
剑指 offer 编程题 C++ 版总结(上)
剑指 offer 编程题总结(上)原创 2020-11-14 13:53:38 · 1667 阅读 · 0 评论 -
九种 0-1 背包问题详解
目录动态规划概念问题1:0-1背包问题问题2:完全背包问题问题3:多重背包问题问题4:混合背包问题问题5:二维背包问题问题6:分组背包问题问题7:有依赖的背包问题(困难)问题8:背包问题求方案数问题9:背包问题求具体方案前言0-1 背包是一个经典的问题,之前也整理过一篇关于 0-1 背包的博客,当时只是整理了 0-1 背包问题的4 种解决方法。最近在复习算法,发现有很多 0-1 背包问题的衍生问题。0-1 背包问题的限制条件既可以是重量,也可以是容量,或者..原创 2020-08-10 16:55:34 · 19671 阅读 · 2 评论 -
尾递归及快排尾递归优化
尾递归概念如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。原理当编译器检测到一个函数调用是尾递归的时候,它就覆盖当前的活动记录而不是在...原创 2020-04-13 15:17:19 · 4663 阅读 · 2 评论 -
Topk 问题详解及代码和数据分析
Topk 问题描述如从海量数据中寻找最大(或最小)的 k 个元素,这类问题被称为 Topk问题。这个问题无论在实际应用还是面试都会被问到。那我们今天就来看看到底有几种解决方案,以及各个方案的优劣情况。以下解题思路的前提条件是:从数组array[1, n]中,寻找出最大的 k 个数。全局排序面对Topk问题,最容易想到的办法就是排序了。将array里的元素进行排列,便可以获得最大...原创 2020-04-08 23:19:24 · 3272 阅读 · 0 评论 -
通俗易懂的讲解堆排序(含Gif图)
堆的定义堆排序是一种树形结构选择排序方法,其特点是:在排序过程中,将序列视为一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的关系,在当前无序区间中选择关键字最大(或最小)的元素。堆的定义如下:n个关键字序列L[1,2,3...n]称为堆,当且仅当该序列满足:①L(i) <= L(2i) 且 L(i) <= L(2i+1) ②L(i) &...原创 2020-04-07 16:07:17 · 6201 阅读 · 0 评论 -
快速排序的4种优化
快排思想快排基准的选择 固定基准 随机基准 三数取中快速排序的优化优化1:序列长度达到一定大小时,使用插入排序优化2:尾递归优化优化3:聚集元素优化4:多线程处理快排快排思想快排算法是基于分治策略的排序算法,其基本思想是,对于输入的数组a[low, high],按以下三个步骤进行排序。(1)分解:以a[...原创 2018-09-15 22:14:28 · 49587 阅读 · 24 评论 -
0-1 背包问题的 4 种解决方法&&算法策略
蛮力法递归与分治策略动态规划贪心算法回溯法分支限界法前言0-1背包是一个经典的问题,而它能用不同的算法思想去解决。恰巧最近在看算法,学习算法就是学习解决问题的思路。现在将0-1背包问题与解决方法整理出来,这样不仅能区分不同的算法思想,还能加深对0-1背包问题的理解。虽然有的算法思想并不能解决这一问题,但是为了对算法策略有一个较为整体的了解,所以在这里做一下简单的介绍。...原创 2018-11-01 15:39:54 · 64279 阅读 · 8 评论