Руководство по использованию алгоритма сортировки подсчетом в JavaScript
Поскольку мое время в качестве студента-программиста в школе Flatiron подходит к концу, я выполняю ежедневные задачи на HackerRank.com в качестве подготовки к будущим интервью. В центре внимания этой статьи будет решение вопроса HackerRank «Сортировка подсчета 1». Вопрос выглядит так:
По сути, создаваемая функция должна принимать массив в качестве параметра и возвращать массив частот со значениями в каждом индексе, связанным с частотой, с которой значение встречалось в исходном массиве. Первым шагом при этом является создание нового массива с тем же количеством индексов, что и массив, передаваемый в функцию.
function countingSort(arr) { let frequencyArray = new Array(100).fill(0); }
Достаточно просто. Обратите внимание, что «заполнение» должно быть включено, иначе значения в каждом из индексов останутся неопределенными, и массив останется пустым. Следующим шагом является повторение исходного массива, который принимает функция (arr), и увеличение числа в связанном индексе FrequencyArray на 1. Это можно сделать с помощью цикла for:
function countingSort(arr) { let frequencyArray = new Array(100).fill(0); for(let num of arr){ frequencyArray[num]++; } }
Наконец, когда цикл завершится и массив FrequencyArray будет содержать правильные счетчики, последним шагом будет возврат FrequencyArray.
function countingSort(arr) { let frequencyArray = new Array(100).fill(0); for(let num of arr){ frequencyArray[num]++ } return frequencyArray; }
Вот и все! Не слишком сложно для этого. Я хотел бы посмотреть, как другие решили эту проблему, поэтому, если вы придумали решение, отличное от моего, напишите об этом в комментариях. Обязательно подписывайтесь на меня и следите за будущими прохождениями испытаний HackerRank.
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.