暂无搜索历史
作为一个曾经的DBA,也刚好对这部分内容感兴趣,所以就深入的研究了一下这部分的代码,现在将学习的笔记整理在此。
手上有一个工作,要做一个数据库类型转换工具,比如MySQL转ClickHouse,那么这个工具大部分的工作就是在做映射关系的比对。
冒泡排序的思想是遍历数组,依次计算相邻元素,按照规则进行交换位置。一般的代码实现如下:
这个数列是意大利数学家斐波那契在《算盘书》里提出的,在数学上是用递归的方式来定义的:
之前学习的链表、队列、栈和数组,都是线性的。而树不同,树是由顶点和边组成的。就像下图,每个结点之间可能存在一定的关系:上下存在父子关系,左右存在兄弟关系。
在实现LRU缓存管理的时候发现,由于利用了链表,导致find操作十分耗费时间。如果能有一个地方,存储了数据在LRU链表里的地址,那就完美了。
栈是一种先进后出的数据结构,其操作更是被限制在了pop和push里,而且仅仅是针对栈顶操作,所以时间复杂度是O(1)。想象栈其实和现实中叠放的盘子一样。
链表是一种常见的数据结构,一般的缓存管理都会选择链表来实现LRU。在常见的面试八股文中,总会提到数组和链表的区别。一般的答案主要包括几个方面:
观察逻辑发现这个数组中的每个元素执行起来,其实没有必然的先后关系,完全可以并发执行,于是我改了一版代码:
学习Golang的时候遇到了一些单元测试问题,发现有些工具是真的好用,就记录在此,主要包括monkey、convey,还有数据库Mock等。
之前我是个Java程序员,对OOP那一套可以说很是熟悉了,也习惯了这种常见的编程思维。比如我要实现一个简单的微服务UserService,那么我肯定会首先定义这...
Golang并非设计成了一种面向对象的语言,没有Class的概念,因此在继承和多态的实现上有些让人难以快速理解的地方。
腾讯 | 开发工程师 (已认证)
暂未填写个人简介
暂未填写个人网址