Я пытаюсь распараллелить мой преобразованный сортированный массив в программу BST на Java. Поскольку моя функция работает в режиме Divide и Conquer, я считаю, что она параллелизуема, но застряла в реализации. Это будет очень полезно, если вы, ребята, скажете мне, как подать темы здесь.Parallelize Convert Sorted Array to Binary Search Tree Function
Заранее благодарен!
// 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'] (https://docs.oracle. ком/JavaSE/7/документы/API/Java/Util/параллельное/ForkJoinPool.html). – Andreas
@ Andreas Cool! Похоже, что Divide и Conquer - идеальный вариант использования для ForkJoinPool. – gyoho