上一页 1 2 3 4 5 6 ··· 13 下一页
摘要: 堆排序是利用最大堆的性质将堆顶元素与数组末尾元素互换,然后重新将剩下的HeapSize-1部分的数组维护为最大堆的过程。 首先我们需要知道什么是堆,以及最大堆和最小堆等。 堆是数组,可以被看做是一颗完全二叉树(即任意两个叶子节点的深度相差不超过1且其排列与满二叉树契合),反过来我们也可以说堆是一个完 阅读全文
posted @ 2024-01-09 14:50 realcp1018 阅读(346) 评论(0) 推荐(0)
摘要: 归并排序和快排都是时间复杂度为n*logn的排序算法,都较好的的利用了分治思想,因此放在一起描述。 上图是我比较喜欢的一副展示归并和快排的示意图,我们可以通过递归来实现上述两个排序算法。 先来说归并排序: 归并排序的本质就是将要排序的数组一层一层的拆分为直到长度为1的单元素数组然后进行逐层归并。 通 阅读全文
posted @ 2024-01-09 14:40 realcp1018 阅读(477) 评论(0) 推荐(0)
摘要: 这三种排序之所以放到一起说,是因为他们都比较基础,其最差时间复杂度皆为O(n²),空间复杂度皆为O(1)。 最差时间复杂度为O(n²)并不意味着他们就一定比快排、归并等排序算法差,因为时间复杂度只是一个理论相关值,实际排序的耗时和数组规模、数组的有序程度以及 比较/交换次数 都有关系。 鉴于算法较为 阅读全文
posted @ 2024-01-09 14:24 realcp1018 阅读(140) 评论(0) 推荐(0)
摘要: # Python抽象类 python没有接口类型,因为python是动态类型的语言,像接口这种轻耦合的东西在python中随处都是,例如内置的魔法方法等,甚至可以说在python这种天马行空的语言中接口显的反而有点清秀。 不过Python还是提供了像java中那样的抽象类定义方法,某些时候还是有用的 阅读全文
posted @ 2023-05-31 11:16 realcp1018 阅读(432) 评论(0) 推荐(0)
摘要: 使用Golang编程时,一般只有在写最终的main函数时我们才有机会调用某个函数进行测试,在大型项目中如果只负责编写某个非main模块时应当如何测试函数的可用性? Golang提供了Testing模块,这个模块可以让我们随时随地进行函数功能验证。 testing - The Go Programmi 阅读全文
posted @ 2022-11-25 16:43 realcp1018 阅读(172) 评论(0) 推荐(0)
摘要: 本文参照如下官网链接: gRPC简介:https://grpc.io/docs/what-is-grpc/introduction/ proto语法:https://developers.google.com/protocol-buffers/docs/proto3 如何使用proroc工具和相关插 阅读全文
posted @ 2022-09-14 14:38 realcp1018 阅读(417) 评论(0) 推荐(0)
摘要: ent快速上手一文中介绍了如何在ent框架内使用ORM思想操作数据库,本文讲述下如何在ent框架下执行裸SQL语句。 ent通过引入sql/execquery的feature flag来支持裸SQL执行,这样可以绕过繁琐的relational mapping部分。 详见:https://entgo. 阅读全文
posted @ 2022-09-01 19:02 realcp1018 阅读(1792) 评论(0) 推荐(0)
摘要: https://entgo.io/docs/getting-started https://github.com/ent/ent ent是一款facebook开源的go语言ORM框架,类似于gorm等用于实现数据库对象映射和操作的框架。ent的不同之处在于他可以使用图模式来表达对象之间的关系,在需要 阅读全文
posted @ 2022-09-01 17:38 realcp1018 阅读(6560) 评论(0) 推荐(0)
摘要: https://go.dev/blog/intro-generics 在《Interface简介》一文中,我使用如下代码实现了简单的Contains函数: package main import ( "fmt" ) func main() { var s []interface{} s = appe 阅读全文
posted @ 2022-07-29 15:45 realcp1018 阅读(1567) 评论(0) 推荐(0)
摘要: GUN make文档: https://www.gnu.org/software/make/manual/make.html 以前使用make编译C++的项目是比较常见的场景,如今go也可以使用make啦。 为什么要引入make? 当我们写完一个go项目后,可以使用go build来将项目编译为可执 阅读全文
posted @ 2022-07-29 15:40 realcp1018 阅读(1336) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 13 下一页