数据结构与算法
文章平均质量分 66
hhh_2333
这个作者很懒,什么都没留下…
展开
-
归并排序中使用Fork/Join框架与普通多线程的比较
从实验结果上来看,归并排序中使用Fork/Join框架比使用普通多线程在效率上有了一定的提高。更重要的是,使用Fork/Join框架的程序会更具有健壮性。多线程的归并排序中,线程数量会随着递归层级的深入而爆炸式的增长,因此要严格限制递归层级的深度。而在Fork/Join框架中,工作线程的数量可以预先定义,在算法实现时只需要考虑每个任务的粒度大小,而这同样是多线程的归并排序所需要考虑的。此外,使用Fork/Join框架的代码更易读易写,能更好适配采用分治策略的算法。原创 2022-10-26 10:28:10 · 338 阅读 · 1 评论 -
Java的Fork/Join框架
Doug Lea 的 A Java Fork/Join Framework论文在有一类并发编程中,问题被(递归地)分解为多个子问题,每个子问题被并发处理,所有子问题结果的组合则是该问题的解决结果。Fork/Join框架可以支持该类并发编程,其主要的实现技术围绕高效构建和管理任务队列和工作线程。翻译 2022-10-24 20:03:45 · 444 阅读 · 0 评论 -
排序算法之多线程实现
在排序算法中,归并排序(Merge Sort)采用了经典的分治(divide-and-conquer)策略,并且具有并行的特征。如下是归并排序算法串行执行的Java代码:原创 2022-09-12 16:38:08 · 928 阅读 · 0 评论 -
二叉树的序列化与反序列化(leetcode格式)
在二叉树中,序列化是将二叉树转化为字符串,方便数据的存储和传输;而反序列化是将字符串重构得到原来的二叉树,如图所示:原创 2022-05-26 16:38:49 · 510 阅读 · 0 评论 -
顺序表
顺序表是线性表的顺序存储。它是用一组地址连续的存储单元依次存储线性表中的数据元素,表现为逻辑上相邻的两个元素在物理位置上也相邻原创 2020-01-15 14:51:09 · 669 阅读 · 0 评论