【发布时间】:2016-08-14 23:16:28
【问题描述】:
我正在尝试在 Java 中并行化我的 Convert Sorted Array to BST 程序。因为我的函数以分而治之的方式运行,我相信它是可并行的,但一直坚持实现。如果你们能告诉我如何在这里应用 threads 将会非常有帮助。
提前致谢!
// Definition for a binary tree node.
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if (nums == null) {
return null;
}
return sortedArrayToBST(nums, 0, nums.length - 1);
}
private TreeNode sortedArrayToBST(int[] nums, int start, int end) {
if (start > end) {
return null;
}
int mid = start + (end - start) / 2;
TreeNode node = new TreeNode(nums[mid]);
node.left = sortedArrayToBST(nums, start, mid - 1);
node.right = sortedArrayToBST(nums, mid + 1, end);
return node;
}
}
【问题讨论】:
-
一种选择是使用
ForkJoinPool。 -
@Andreas 酷!看起来分而治之是 ForkJoinPool 的完美用例。
标签: java arrays multithreading parallel-processing binary-search-tree