九种排序具体实现代码

声明:本文内容纯属博主自己查找和归纳的个人所需的知识点,仅作参考,如有错误,博主强烈希望您指出。如果您是某个知识点的原创博主,如有需要,可联系本人加上链接。本文内容会根据博主所需进行更新,希望大家多多关照。 直接插入排序 void InsertSort(int r[]) { int n = sizeof(r) / sizeof(r[0]); for(int i = 1; i < n; ++i) { for(int j = i - 1; j >= 0; --j) { if(r[j+1] < r[j...阅读全文

Segmentfault 2020-04-09 11:32:35 DX3906

EtcdRaft源码分析(线性一致读)

背景 我们知道Raft是Leader+Follower的模型,所有的更新由Leader处理,然后再同步给Follower。 想象一下,如果要所有的节点都参与进来支持读取的请求,会带来什么样的问题? Leader跟Follower并不总是一致的,换句话说Follower会落后Leader的进度。如果没有特别的处理,那么不同的节点读取的结果很可能不一致。 如果Leader被集群孤立,而且其他人已经推举出了新的Leader。而老的Leader还没有察觉到这个变化,他任然觉得还是Leader,但是他的数...阅读全文

简书 2020-04-08 07:32:51 小蜗牛爬楼梯

11.函数

Go语言基础之函数 Golang 函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。 函数 Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。 函数定义 Go语言中定义函数使用func关键字,具体格式如下: func 函数名(参数)(返回值){ 函数体 } 其中: 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。 参数:参数由参数变量和参数变量的类型组成,多个...阅读全文

简书 2020-04-08 07:32:51 雪上霜

go中使用cmd与cron

一、go中使用cmd /bin/bash -c "ls -l" cmd->golang->pipe pipe()创建2个文件描述符,fd[0]可读,fd[1]可写 fork() 创建子进程 fd[1]被继承到子进程 dup2() 重定向子进程 stdout/stderr到fd[1] exec() 在当前进程内,加载并执行二进制程序 例子1 模拟一下cmd调用 package main import ( "fmt" "os/exec" ) func main() { var( cmd *exec....阅读全文

简书 2020-04-08 07:32:50 小手25

golang 结构体

//结构体 package main import "fmt" // 用 type 关键字定义一个结构体 type person struct { name string age int } func main() { //实例化一个结构体 // 第一种情况 p1 := person{} p1.name = "小麦客" p1.age = 666 fmt.Println(p1.name) fmt.Println(p1.age) // 第二种情况 p2 := person{ name:"小麦客", ...阅读全文

简书 2020-04-08 07:32:49 小麦客

golang 性能优化实战

调优基本思路 对外接口协议不能改变 了解需求和代码演进过程 确定资源消耗类型 控制运算数据输入量 提高 CPU 利用率 提高缓存命中率 项目概况 gin-swagger 解析使用 gin 的代码,生成 swagger2.0 的文档,以保证文档和代码的一致性。 使用 golang.org/x/tools/go/loader 将源码解析成 go/types go/ast 相关结构化数据。 通过遍历 package 找到目标代码块及其相关数据,构建 github.com/go-openapi/spec...阅读全文

简书 2020-04-08 07:32:46 王谙然

python3.8版本已经更新,数据分析师和数据开发者看过来

python3.8版本已经更新,数据分析师和数据开发者看过来 新版本python3.8已经发布 作为一个放弃java转投python很多年的数据开发者,已经好久没有更新python了,也很久没有关注python的一些新功能新特性了,去年把自己做的几个小项目更新到了python3.6,然后就一直没把精力放到这一块了。 今天因为安装一个第三方库失败,打算去官网看下python的更新情况,发现已经更新至python3.8.2了,那么就当机立断下载安装,顺便学习一下python3.8的新特性吧。 安装p...阅读全文

简书 2020-04-08 07:32:44 数据驱动手记

GO的第七天,JSON

最近比较忙,一直没有时间。最近的开发过程也遇到一些问题,之后会慢慢记录下来。团队开发当中也遇到一些让人心烦的事,不说废话了,先开始今天的话题吧。json是一种用于发送和接收结构化信息的标准协议。现在基本上API传输格式都是json,而且json数据格式相对好处理。 JSON go语言中将 结构体 转为 json 的过程叫编组(marshaling)。编组通过调用 json.Marshal 函数完成。 type Movie struct { Title string Year int `json:...阅读全文

Segmentfault 2020-04-09 09:32:34 Mr_J

kubernetes文章系列说明和道歉

在发布最新k8s最新实战生产系列的文章之前,我想说一声抱歉,对不起,之前由于工作的原因确实太忙,导致上个系列没更新完。接下来我尽量会每两天更新一篇k8s最新实战生产系列的文章,会使用比较新的v1.16.2版本,除了一些K8S基础,后面会更新关于K8S如何搭建高可用prometheus监控、日志采集EFK、DevOps整套的方案、CEPH Rook搭建、也会讲一些包管理,Helm3的使用和自己的心得和Operator的讲解。希望大家可能多多支持我。这个系列的文章都是在我们生产环境中实践并且探索出来...阅读全文

Segmentfault 2020-04-09 09:32:34 何阳光

Golang Iterator 设计

在学习《算法》这本书时,第一章有一个 Bag 的数据结构,它定义为不能删除元素的集合。之前看到一篇文章,说数据结构底层结构其实只有数组与链表,所以在实现 Bag 时想使用数组和链表分别实现。 但是在设计 Bag API 时发现,该如何提供一个通用的遍历方式给第三方调用?因为不像 Java,Golang 并未提供一个迭代接口,只是原生语法上支持对一些容器的遍历,如下所示: // 如果 container 是数组或者 Slice,那么 k => index,v => 数组元素; // 如果 cont...阅读全文

Segmentfault 2020-04-08 23:32:37 Private

gRPC实战--用Golang编写通过gRPC进行通信的服务

gRPC实战包含一系列文章,包括原创和翻译。最终会形成一个完整的系列,后续会不断完善,增加新的内容: gRPC简介:why,what,how? gRPC服务健康检查最佳实践 Kubernetes中使用envoy负载均衡gRPC流量 用Golang编写通过gRPC进行通信的服务 如何在NodeJS中有效使用gRPC流 ============================================================= What is gRPC: gRPC,顾名思义, Goog...阅读全文

Segmentfault 2020-04-08 22:32:35 iyacontrol

go | 常见错误集合

本文是基于mac,安装go1.14版本之后,执行一个基本的go文件报错了。 错误现象: 执行下面的go的文件报下面的错误了 # hello.go package main import "fmt" func main(){ fmt.Println("hello world") } ➜ test go run hello.go # runtime/internal/atomic /usr/local/go/src/runtime/internal/atomic/atomic_amd64x.go:1...阅读全文

Segmentfault 2020-04-08 21:32:36 喝醉的清茶

用goland测试golang代码 go test

一.新建 _test 文件 格式为,在原文件的名字后面,加上_test 后缀 binary_tree.go 对应的_test文件为 binary_tree_test.go 二.新建Test 函数 格式为 加前缀 Test (TestClass_method)goland有自动补全,打一个TestI,就会补全 func (btree *tree) Insert(dt int) {} 对应的test函数为 func TestTree_Insert(t *testing.T) {} 三.写测试用例 f...阅读全文

Segmentfault 2020-04-08 21:32:36 海生

C++服务端面试准备(2)MySQL相关

声明:本文内容纯属博主自己查找和归纳的个人所需的知识点,仅作参考,如有错误,博主强烈希望您指出。如果您是某个知识点的原创博主,如有需要,可联系本人加上链接。本文内容会根据博主所需进行更新,希望大家多多关照。 MySQL底层数据结构 B+树 存储引擎之二:InnoDB与Myisam InnoDB Myisam 事务 支持 不支持 外键 支持 不支持 锁 表锁、行锁 表锁 总行数 需要扫描整个表 直接读取 文件 .idb数据文件和它的.frm文件,表的大小只受限于操作系统文件的大小,一般为 2GB ...阅读全文

Segmentfault 2020-04-08 21:32:35 DX3906

C++服务端面试准备(1)C++相关

声明:本文内容纯属博主自己查找和归纳的个人所需的知识点,仅作参考,如有错误,博主强烈希望您指出。如果您是某个知识点的原创博主,如有需要,可联系本人加上链接。本文内容会根据博主所需进行更新,希望大家多多关照。 面向对象 把数据及对数据的操作方法放在一起,作为一个相互依存的整体 OOP——面向对象的编程,OOD——面向对象的设计,OOA——面向对象的分析 三大特征: 1.封装 将对象的属性和方法封装到一个独立单元中,并且隐藏对象的属性和方法,仅对外提供公共访问方式,将变化隔离,便于使用。 2.继承 ...阅读全文

Segmentfault 2020-04-08 21:32:35 DX3906

数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树

2-3树和左倾红黑树 某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较为简单,容易教学。在这里,我们区分开左倾红黑树和普通红黑树。 红黑树是一种近似平衡的二叉查找树,从2-3树或2-3-4树衍生而来。通过对二叉树节点进行染色,染色为红或黑节点,来模仿2-3树或2-3-4树的3节点和4节点,从而让树的高度减小。2-3-4树对照实现的红黑树是普通的红黑树,而2-3树对照实现的红黑树是一种变种,称为左倾红黑树,其更容易...阅读全文

Segmentfault 2020-04-08 15:32:36 陈星星

数据结构和算法(Golang实现)(28)查找算法-AVL树

AVL树 二叉查找树的树高度影响了查找的效率,需要尽量减小树的高度,AVL树正是这样的树。 一、AVL树介绍 AVL树是一颗严格自平衡的二叉查找树,1962年,发明者Adelson-Velsky和Landis发表了论文,以两个作者的名字命名了该数据结构,这是较早发明的平衡二叉树。 定义如下: 首先它是一颗二叉查找树。 任意一个节点的左右子树最大高度差为1。 由于树特征定义,我们可以计算出其高度h的上界h<=1.44log(n),也就是最坏情况下,树的高度约等于1.44log(n)。 假设高度h的...阅读全文

Segmentfault 2020-04-08 14:32:36 陈星星