实用开发模块kilbklib是一个轻量级的 C 语言库,包含常用的数据结构和算法。大多数组件不依赖外部库,并且彼此独立。要使用该库的组件,只需将几个文件复制到您的源代码树中,无需担心库依赖性。Klib 在生物信息学中被广泛应用,例如 minimap2 使用了部分库作为其基础数据结构。 Klib 追求高效和小内存占用。在速度和内存使用方面,一些组件(如哈希表、B 树、向量和排序算法)是所有编程语言中类似算法或数据结构中最有效的实现之一。 与 C 的标准库(std)相比,Klib 运行速度更快,占用内存更少。但是,由于 Klib 主要由 C 语言的宏实现,调试难度较大,并且需要手动管理内存,因此请根据实际情况使用。 用法:klib文件夹存放修改后的klib代码,docs文件夹存放常用头文件的教程,如kvec.h, kseq.h, kthread.h等。 并行后缀数组介绍:部分后缀数组方法(如 DC3 等)采用基数排序完成,由于基数排序并行较为容易,因此有一些开发并行基数排序以实现并行后缀数组的方法。本项目进行了部分整理。 注意:由于 Cilk 已经被 gcc-7 弃用,因此采用 OpenMP 进行并行,代码中对于 OpenMP 的支持不足。 用法:参考 usage 项目路径 |