const listaLivros = require('./arrays2')
function mergeSort(array) {
if (array.length > 1) {
const meio = Math.floor(array.length / 2)
const parte1 = mergeSort(array.slice(0, meio))
const parte2 = mergeSort(array.slice(meio, array.length))
array = ordena(parte1, parte2)
}
return array
}
function ordena(parte1, parte2) {
let posicaoAtualParte1 = 0
let posicaoAtualParte2 = 0
const resultado = []
while (
posicaoAtualParte1 < parte1.length &&
posicaoAtualParte2 < parte2.length
) {
let produtoAtualParte1 = parte1[posicaoAtualParte1]
let produtoAtualParte2 = parte2[posicaoAtualParte2]
if (produtoAtualParte1.preco < produtoAtualParte2.preco) {
resultado.push(produtoAtualParte1)
posicaoAtualParte1++
} else {
resultado.push(produtoAtualParte2)
produtoAtualParte2++
}
}
return resultado.concat(
posicaoAtualParte1 < parte1.length
? parte1.slice(posicaoAtualParte1)
: parte2.slice(posicaoAtualParte2)
)
}
console.log(mergeSort(listaLivros))
o resultado sempre é esse...
#
# Fatal error in , line 0
# Fatal JavaScript invalid size error 169220804
#
#
#
#FailureMessage Object: 000000DC38CFE340
1: 00007FF7E6DE815F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+114079
2: 00007FF7E6D0343F std::basic_ostream<char,std::char_traits<char> >::operator<<+65023
3: 00007FF7E79E2EE2 V8_Fatal+162
4: 00007FF7E7566D35 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArray+101xedArray+101
5: 00007FF7E74102F3 v8::internal::FeedbackNexus::ic_state+62771
6: 00007FF7E7426E50 v8::debug::Script::GetIsolate+15840 26913
7: 00007FF7E729A9A1 v8::internal::CompilationCache::IsEnabledScriptAndEval+26913
8: 00007FF7E7739701 v8::internal::SetupIsolateDelegate::SetupHeap+494417
9: 000002883848A838