北川广海の梦

北川广海の梦

数据结构

Ringbuffer环形队列

Ringbuffer环形队列

RingBuffer 环形缓冲队列,在系统中是非常常见的数据结构,许多场景都是用到了它,例如大名鼎鼎的Linux io_uring,它通过在共享内存中使用环形队列,避免了锁与内核切换的开销,大大提高性能。再比如Golang语言中的channel,在有缓冲的情况下,其内部实现也是通过环形队列的。不过它
26
0
0
2023-06-20

前缀树实现

基于Golang,效率可能并不能达到O(N),因为要支持字母外的其他字符,所以子节点的长度并不固定,这里用的是链表存储。所以在进入到下一子节点前,需要遍历这个子节点链表。然而,如果是纯英文,则可以通过ASCII直接定位了,效率和内存都更有优势。 下面是代码: package main import
156
0
0
2023-02-12

优先级队列实现

publicclassMaxBinaryHeap<TextendsComparable<T>>{privatefinalT[]array;privateintlastIndex=0;publicMaxBinaryHeap(intsize){this.array=(T[])ne
221
0
0
2020-04-25