go
doraHP
暂时不写
展开
-
记一次流水线工作单元设计/golang
temp原创 2020-09-26 22:13:30 · 183 阅读 · 0 评论 -
记一次图层合并算法设计
一张完整的图像可能是由若干个大小不同的图层组成的。如果由计算机将这若干个图层渲染成一张完整的图像,则需要根据图层的z值(也可以理解为远近关系,z值越大,从视觉角度来看,图层被显现的内容越多),所以,一般渲染过程,就是将图层根据z值进行升序排序,然后从z值最小的图层开始依次渲染。每个图层都是固定大小的矩形(即使生活中我们看到各种形状的图形,它们其实是被包含到一个矩形区域"RGBA画布"中)。 而今天讨论的主题是如何将图层合并,从而减少计算机的计算量(前提:此处可以忽略合并图层带来计算量)。我...原创 2020-08-16 11:59:12 · 549 阅读 · 0 评论 -
素数的判断方法/go实现(4s算出1000w以内的素数)
这篇文章会介绍三种判断素数的方法,其中对第一、二种简单介绍,第三种会详细介绍。特别说明一下, 1不是素数,2是素数。方法一(也是最容易理解的方法):、 若一个数n(n > 2)为素数,则自然数集合 => {[2,]区间}中,一定有一个自然数可以整除n。方法二(素数都是不可整除的,而合数一定可以由素数相乘得到) 若一个数n(n > 2)为素数,则素数集合 => {2, 3, ..., m(m <= )}中的任何素数都不能整除n。方法三(不是合...原创 2020-06-16 10:36:26 · 649 阅读 · 0 评论 -
session管理组件实现[go实现]
回想起MySQL中辅助索引和聚簇索引的关系和php7.0版本中Array的底层数据结构实现,session的底层数据结构也以类似的数据结构组合模式进行session会话的管理,所以用到的核心数据结构为最小堆+Map。使用最小堆的目的是为了session集合进行有效管理,而Map则是为了通过sid快速找到session。(分享一个开发心得:session 不仅占用服务器资源再加上其生产方式,很容易受到网络黑客攻击,所以只给合法的用户在服务端设置session,没通过验证的,我们尽量使用cookie代替sess原创 2020-05-11 21:44:01 · 373 阅读 · 0 评论 -
[封装]实战gorm
由于gorm不仅支持数据库读写操作,且以面向对象的编码方式实现数据库读写。本片文章从实际开发中所遇问题和新的需要,对gorm进行一次封装操作,以此来加快开发速度。首先介绍代码架构:|-----------------------|- component|-- db.go|-- model.go|-- test.go|- include|-- container.go|-- db.go|- init|-- init.go|- model|-- bean|--- message原创 2020-05-11 10:23:47 · 1636 阅读 · 0 评论 -
【分享】 使用堆作为底层数据结构来优化”红包分配算法“
我之前的博客中用c语言写了一个红包均分算法,用到的数据结构是链式数组,今日用堆改进此算法-相较稳定的红包算法实现/c语言实现,使用的语言是Go语言。 核心算法相同(不了解的同学可以点击上面链接阅读),所以直接上代码://使用堆完成红包分配算法package mainimport "fmt"//用于影响分配结果的因子var yz float32 = 0type ...原创 2020-02-18 00:17:48 · 207 阅读 · 0 评论 -
堆排序的实现原理分析(剖析上浮下沉操作, 让你重新认识堆排序)
网络上关于堆排序的算法博客多是给图给真相(因为翻了很多文章还是不清楚,堆排序的过程是什么?所以自己来搞),今天我介绍一下我对堆排序的理解及实战分析。 先介绍一下堆:它分最大堆和最小堆,二者的不同就是父节点和子节点的关系;最大堆要求父节点要比子节点大,而最小堆要求比父节点要比子节点小。其次是堆所依赖的数据结构,它本身是一颗完全二叉树,由于完全二叉树特性,父节点和左右子节点间位置的关...原创 2020-02-13 22:36:37 · 1516 阅读 · 0 评论 -
一次场景模拟/go实现
无论是生产者还是消费者各自是独立的,但彼此又相关联。今日我用go语言模拟一个并发的生产和消费场景。 背景是这样的: ``` 有一个生产饮料的工厂, 工厂里有2个生产机器, 每生产一个产品要花费1h,生产的产品会自动放到仓库中,仓库可容纳5个这样的产品,有3个员工,他们每一个人需要花费0.8h将1个产品搬运到小区中地摊上等待售卖,每隔1.5h会有一个顾客来到摊...原创 2020-02-04 23:54:47 · 265 阅读 · 1 评论 -
记一次算法优化
这段时间刷了刷letcode,编程的乐趣可能就是`它就在那儿,而你要征服它`(哈哈哈),刷过一道题时,会有种莫名其妙的快感!本篇文章记录了我刷的一道算法题并经历不断优化和改进且最终"攀顶"的历程。题目优先:letcode-44_通配符匹配题解:我的题解'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。示例:(抄自 letcode)输入:s ...原创 2020-01-25 14:23:14 · 529 阅读 · 0 评论 -
八皇后-go实现
八皇后游戏规则说明: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。(百度百科)延申到n皇后,规则已知,算法的空间复杂度为O(n^2), 空间复杂度为O(n),package mainimport "fmt"//判断该位置是否满足八皇后规则func eJudge(e []int, i int)...原创 2020-01-22 21:40:47 · 233 阅读 · 0 评论 -
白盒用例测试程序/go实现
简单介绍一下白盒测试: 源码公开,清楚传参、返回值和处理逻辑;我们在测试一个方法或者接口时,通过传入合法或者非法的参数,并且抽选一些具有代表性的值作为测试用的合法传参,通过模仿正常请求,检测方法或接口内部的异常。周末没事,又想学习一下go,最近又老写bug,所以就想到用go写一个测试进程,实现白盒`用例`测试用到的数据结构简单介绍一哈:用Clinet表示一个正常的客...原创 2020-01-04 17:22:44 · 465 阅读 · 0 评论 -
数学之美-唯一ID生成算法
一切的合理性都可以通过数学来解释(自己瞎编的),今天就用数学给大家变个戏法,实现一个唯一ID生成器;而用到的数据知识包括排列组合+质数特性应用: 先给出一个数学定义:在一个质数集合中随意取出2n个质数,让他们两两相乘然后加和得m,放入后重新再取出2n个质数,经过相同步骤计算得出z,除非前后取出的质数相同且两两相乘的组合也相同,否则m != z(我拿着笔经过一阵噼里啪啦,验证得来的)。...原创 2020-01-02 23:25:17 · 1570 阅读 · 0 评论