Tengo las siguientes dos matrices, los nombres lo llaman n y sortOrder lo llaman k.
const names = ['bob', 'bob', 'jim', 'mike', 'dale']; // n const sortOrder = ['jim', 'bob', 'mike']; // k, this is a unique arrayel resultado después de mis funciones debería ser una matriz que se vea así,
['jim', 'bob', 'bob', 'mike']que ordena la matriz en función de la posición de los nombres en sortOrder.
¿Cuál es el Big(O) de las siguientes dos funciones? ¡Gracias por adelantado!
function order1(names, sortOrder) { const newNames = []; for (let order of sortOrder) { for (let name of names) { if (order === name) { newNames.push(item); continue; } } } return newNames; } function order2(names, sortOrder) { let newNames = []; const orderMap = {}; for (let name of names) { if (!orderMap[name]) { orderMap[name] = 1; } else { orderMap[name] += 1; } } for (let order of sortOrder) { if (orderMap[order]) { newNames = [...newNames, ...Array(orderMap[order]).fill(order)]; } } return newNames; }