Я экспериментирую с сортировкой больших массивов уникальных целых чисел в JavaScript и придумал простой подход. Мне любопытно, является ли это признанным шаблоном или есть ли потенциальные ловушки, которые я мог бы отсутствовать.function sortArr(arr) {
const sorted = [];
arr.forEach(el => sorted[el] = el);
return sorted.filter(el => el);
}
function getRandomArray(length, max = length * 10) {
const set = new Set();
while (set.size < length) {
set.add(Math.floor(Math.random() * max) + 1);
}
return [...set];
}
const arr = getRandomArray(100000);
console.log(sortArr(arr));
< /code>
Как это работает: < /p>
Каждый номер из массива помещается в индексе, равном его значению в новом массиве. Проблемы с таким подходом в JavaScript, особенно с большими массивами или большими максимальными значениями? Попытка эффективно сортировать большой набор уникальных целых чисел в JavaScript. Я хотел посмотреть, будет ли размещение каждого элемента в его индексе в новом массиве, а затем фильтрация пустых слотов даст правильно отсортированный массив, и является ли этот подход эффективным по сравнению со встроенным видом или подсчетом. Я также ожидал, что он будет работать относительно быстро для больших массивов и использовать разумное количество памяти.
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-integers