摘要: 顾名思义,分治问题由“分”(divide)和“治”(conquer)两部分组成,通过把原问题分为子问题,再将子问题进行处理合并,从而实现对原问题的求解。我们在排序章节展示的归并排序就是典型的分治问题,其中“分”即为把大数组平均分成两个小数组,通过递归实现,最终我们会得到多个长度为1 的子数组;“治” 阅读全文
posted @ 2023-04-02 23:32 blogzzt 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 417. 太平洋大西洋水流问题 虽然题目要求的是满足向下流能到达两个大洋的位置,如果我们对所有的位置进行搜索,那么在不剪枝的情况下复杂度会很高。因此我们可以反过来想,从两个大洋开始向上流,这样我们只需要对矩形四条边进行搜索。搜索完成后,只需遍历一遍矩阵,满足条件的位置即为两个大洋向上流都能到达的位置 阅读全文
posted @ 2023-04-02 21:34 blogzzt 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 一、Task概念 Tasks are composed of:– code to execute– data environment– internal control variables (ICV) 并行程序会用一个线程按照程序代码的顺序生成任务; 在不附加何限制的情况下, 这些任务将放入到任务池 阅读全文
posted @ 2023-04-02 17:13 blogzzt 阅读(670) 评论(0) 推荐(0) 编辑
摘要: 雷洪教授的《多核并行高性能计算OpenMP》一书中给出了程序优化的思路: 对串行程序进行并行优化建议遵循如下步骤: (1)分析串行代码中可并行化部分,尤其是密切关注程序的热点代码(热点循环、热点函数和热点子程序),这是并行优化中最重要的一个步骤。围绕程序的热点代码进行并行化是减小编程工作量、实现高效 阅读全文
posted @ 2023-04-02 15:44 blogzzt 阅读(85) 评论(0) 推荐(0) 编辑