How to split the array into two subarrays with the smallest sum difference? Given

An array of elements, all elements are positive (unsorted, but sorting is not a problem if required)

The objective:

To create two subarrays, so that abs(sum(array_1) - sum(array_2)) is the smallest possible

The order of elements in the subarrays and the amount of elements don't matter but all elements should be used
E.g.

Input: Starting Array = {5, 8, 13, 27, 14} Result: 3  - smallest possible
difference in sums

Explanation:

First subarray = {5, 13, 14}
Second subarray = {8, 27}
Difference in sums: abs((5+13+14)-(8+27)) = 3 = min

I have a guess that it's something connected to the binary search but I have no clue what is being &quot;binary seached&quot; and what to connect it to.
This problem is the optimization version of the partition problem, and if it was solvable efficiently, that would mean that $P = NP$. That means it is unlikely that there is a polynomial time solution to split an array in two.
There are exact solution algorithms described on the wikipedia page, and some of them are in pseudo-polynomial time.