JS алгоритм => скорее всего речь идет про "Жадные Алгоритмы"
Ребят есть одна коварная задача, не могу решить до конца, не понимаю как это сделать, если кто понимает помогите окончить код, и желательно с описанием хода мыслей, так как Джун и пытаюсь уловить суть построения алгоритма Задача: есть рандомнный массив простых чисел, этот массив нужно разбить на два массива, так что б их сложение было равное друг другу /2 если он не делится на 2, то максимально приближенное друг к другу
я наборосал макет кода, по ресурсам он +- адекватный, но не во всех случаях корректно считает
код:
const jsonRequestArrNumbers = [3,3,3,7,5]
const objSeporateArr= seporateSum(jsonRequestArrNumbers)
function seporateSum(arr){
const counterArr = sumArr(arr)/2,
lengthArr = arr.length-1,
set1 =[],
set2 =[]
const sortArr = arr.sort((a,b)=> {
return a-b
})
if(lengthArr>=1){
sortArr.forEach(el => {
const reduceSum1=sumArr(set1),
reduceSum2=sumArr(set2)
if(reduceSum1>=reduceSum2 && reduceSum2 <= counterArr){
set2.push(el)
}else if(reduceSum1>=reduceSum2 && reduceSum2>=counterArr){
set1.push(el)
}else if(reduceSum1<=reduceSum2 && reduceSum1<=counterArr){
set1.push(el)
}else if(reduceSum1<=reduceSum2 && reduceSum1>=counterArr){
set2.push(el)
}
})
}
return{
set1:set1,
set2:set2
}
}
function sumArr(arr){
let res=arr.reduce((sum,prev)=>{
sum+=prev
return sum
},0)
return res
}
console.log(objSeporateArr)