数学与算法
文章平均质量分 97
GoverChan
活在当下~
展开
-
优先级队列
优先级队列 - 简书一、定义 优先级队列有很多种实现方式。其中使用 “堆” 来实现 “优先队列” 是最常见的,堆的底层是完全二叉树的形式。 上述是一个小顶堆(最小堆)的示意图 最小堆是一种经过排序的完全...一、定义优先级队列有很多种实现方式。其中使用 “堆” 来实现 “优先队列” 是最常见的,堆的底层是完全二叉树的形式。1-0 堆的示意图上述是一个小顶堆(最...原创 2019-12-14 14:22:35 · 230 阅读 · 0 评论 -
虚数的意义
一、什么是虚数?首先,假设有一根数轴,上面有两个反向的点:+1和-1。这根数轴的正向部分,可以绕原点旋转。显然,逆时针旋转180度,+1就会变成-1。这相当于两次逆时针旋转90度。因此,我们可以得到下面的关系式: (+1) * (逆时针旋转90度) * (逆时针旋转90度) = (-1)如果把+1消去,这个式子就变为: (逆时针旋转90度)^2 = (-1)将"逆时针旋转90度"记为 i : ...原创 2017-05-17 15:10:53 · 359 阅读 · 0 评论 -
理解矩阵乘法
大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。矩阵减法也类似。矩阵乘以一个常数,就是所有位置都乘以这个数。但是,等到矩阵乘以矩阵的时候,一切就不一样了。这个结果是怎么算出来的?教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2...原创 2017-05-17 15:35:17 · 224 阅读 · 0 评论 -
Reactor模式软文
Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽。 并发系统常使用reactor模式,代替常用的多线程的处理方式,节省系统的资源,提高系统的吞吐量。 先用比较直观的方式来介绍一下这种方式的优点,通过和常用的多线程方式比较一下,可能更好理解...原创 2017-07-20 17:20:43 · 192 阅读 · 0 评论 -
十大编程算法
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(...原创 2018-05-04 09:05:27 · 454 阅读 · 0 评论 -
深入理解DIP、IoC、DI以及IoC容器
深入理解DIP、IoC、DI以及IoC容器前言对于大部分小菜来说,当听到大牛们高谈DIP、IoC、DI以及IoC容器等名词时,有没有瞬间石化的感觉?其实,这些“高大上”的名词,理解起来也并不是那么的难,关键在于入门。只要我们入门了,然后循序渐进,假以时日,自然水到渠成。好吧,我们先初略了解一下这些概念。依赖倒置原则(DIP):一种软件架构设计的原则(抽象概念)。控制反转(IoC...原创 2018-08-29 18:17:48 · 192 阅读 · 0 评论 -
十大经典排序算法(动图演示)
十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂...转载 2018-11-28 17:06:36 · 168 阅读 · 0 评论