概述 本文中主要讲解一些常见排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序 常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序 ...
分类:
编程语言 时间:
2020-06-17 13:03:11
阅读次数:
69
一、背景Golang开发者非常关心开发应用的安全性。随着GoModule应用越来越广泛,Golang开发者需要更多的方式来确保这些公共共享文件的安全。Golang1.13版本在创建GoModule时,通过增加go.sum文件来验证之后从GOPROXY再次访问到的该Module是否曾被篡改。这个机制有助于保证Module的完整性。但是,当初次创建并提交GoModule时,如果原始文件中被引入了恶意代
分类:
其他好文 时间:
2020-06-17 01:14:07
阅读次数:
60
算法描述 大多数情况下,在三种简单排序中,插入排序都是最优的选择。虽然插入排序算法仍需要 O(N^2) 的时间,但在一般情况下,它要比冒泡排序快一倍,比选择排序还要快一点。插入排序可以简单表述为:使“标定项”的一侧局部有序,每次将标定项插入有序一侧,同时将另一侧的下一项设为“标定项”。 代码部分 / ...
分类:
编程语言 时间:
2020-06-16 23:25:17
阅读次数:
70
解决go包管理代理网址无法访问:proxy.golang.org ...
分类:
其他好文 时间:
2020-06-16 20:45:52
阅读次数:
779
热重启的意义 可以让用户神不知鬼不觉的,更新后端的项目 测试的时候,也不用停止项目然后再开启项目,降低项目开启时间 golang热重启的主要步骤 将编译好的项目覆盖进行 golang热重启的思想 监听重启信号 收到信号之后,进行fork子进程,将服务监听的socket文件描述符传递给子进程 子进程监 ...
分类:
其他好文 时间:
2020-06-16 20:00:08
阅读次数:
67
RPC概念 我的网络通信概念还停留在比较基础的地方, 直觉来说就是发送一个get/post请求, 设定一定的参数格式, 这样对方再解析你的数据, 基于此完成通讯. 而rpc则不使用这种显式的通讯方式, 通过proto与生成grpc文件, 里面提供方法, 供client与server通过方法来进行通讯 ...
分类:
其他好文 时间:
2020-06-16 18:27:42
阅读次数:
57
逃逸分析是golang编译器分析一个对象到底应该放到堆内存上,还是栈内存上(引用了他人的文章) 为何要做逃逸分析 因为对一个程序来说,使用栈内存还是堆内存他们的效率差别很大。 栈内存: 操作系统管理内存的分配和释放,不用golang的垃圾回收操心 内存的存储结构类似于数据结构中的栈,读写位置都在栈顶 ...
分类:
其他好文 时间:
2020-06-16 18:16:57
阅读次数:
48
一、背景 Golang开发者非常关心开发应用的安全性。随着Go Module应用越来越广泛,Golang开发者需要更多的方式来确保这些公共共享文件的安全。Golang1.13版本在创建Go Module时,通过增加go.sum文件来验证之后从GOPROXY再次访问到的该Module是否曾被篡改。这个 ...
分类:
其他好文 时间:
2020-06-16 18:06:44
阅读次数:
34
golang strconv.ParseInt 是将字符串转换为数字的函数,功能灰常之强大,看的我口水直流.func ParseInt(s string, base int, bitSize int) (i int64, err error)参数1 数字的字符串形式参数2 数字字符串的进制 比如二进 ...
分类:
编程语言 时间:
2020-06-16 15:38:52
阅读次数:
120
希尔算法: 先对列表分组,再对每组元素分别做插入排序。 元素分组是通过设置步长(gap,即组的数量)实现的。每一组元素内,相邻元素之间的距离(步长)固定。 插入排序与冒泡排序时间复杂度相同(O(n^2)),但执行速度快,是因为需要执行的代码行数少(寻找到插入位置前,插入排序每次判断仅移动一个元素,冒 ...
分类:
编程语言 时间:
2020-06-16 15:32:04
阅读次数:
59