PostgreSQL源码里面的List结构

PostgreSQL中广泛使用了一种List数据结构,该结构是一个单链表。其定义在pg_list.h和list.c文件中:typedef struct ListCell ListCell; typedef struct List { NodeTag type; /* T_List, T_IntList, or T_OidList */ int length; List

- 阅读全文 -

内部排序算法

排序算法按照元素所在的位置可以分为内部排序(internal sort)和外部排序(external sort)。这里我们讨论的都是内部排序算法,即整个排序工作都能够在内存中完成。且约定需要排序的数组中元素个数为N。1. 插入排序插入排序(insertion sort)是最简单的排序算法之一,其特性如下:插入排序由N-1趟(pass)排序组成;在第P趟,我们将位置P上的元素向左移动到它在前P+1个

- 阅读全文 -

变长结构体

首先说明一下,C/C++中不存在真正意义上的变长结构体。因为结构体在编译期就已经决定了其长度。如果需要实现变长,只能通过运行期分配内存来实现。1,使用指针实现变长结构体类似下面的代码应该非常常见:typedef struct st_type4 { int cnt; char *data; } type_d;我们在结构体中定义了一个data字段,且该字段是一个char型的指针。因为是指

- 阅读全文 -

守望者的逃离问题的多种解决方法

守望者的逃离问题是算法中一个很经典的案例,特别是在贪心算法中经常会被引用。今天我们就来总结一下这个问题的多种解法。题目恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。守望者的跑步速度为17m/s,以这样的速度是无法逃离荒

- 阅读全文 -

微信公众号

随机文章

最近回复

  • repostone: 非技术的路过。
  • NYC: 确认一下你配置的调度策略是Fair,而不是Capacity,不要...
  • NYC: 这个没问题,我文章里面说的是策略,配置的时候是通过CDH配置的。...
  • 一方: 但是我的action队列抢占了资源,导致action不能并行,难...
  • NYC: 是的,不管是哪个队列,队列内部只要有资源够action/lanu...
  • 一方: 老铁,我想问下,你分配好队列,然后固定了lancher队列的am...
  • 一方: https://blog.csdn.net/bigdatapri...
  • NYC: 1,我的解决方案是不可能完全杜绝死锁的,我目前也没有发现比较好的...
  • 一方: 老铁你好!看了下你的解决方案,感觉还是无法解决死锁的问题啊,假如...
  • luke: **感谢分享**

分类

标签