- Расскажите нам о том, что вы узнали на этой неделе.
На этой неделе я узнал, насколько весело работать в группе. Я очень конкурирую с собой, и неспособность понять что-то меня расстраивает. Даже посещение репетиторства иногда заставляет меня чувствовать себя побежденным, но благодаря этому процессу я узнаю, что работа над кодом с двумя или более мозгами кажется почти чудом. Кроме того, я получаю, чтобы узнать немного дополнений по пути!
- Каковы плюсы и минусы неизменности?
Одним из преимуществ неизменности является то, что мы можем использовать одну и ту же строку несколько раз. Мы можем много раз манипулировать глобальной переменной в разных функциях, но при этом иметь одно и то же начальное значение.
- Как добиться неизменности в собственном коде?
Я могу добиться неизменности в своем коде, используя объекты. У нас есть одно значение, которое имеет определенный атрибут. Далее в коде мы можем сделать прототип того же объекта, то есть изменить цвет или добавить к нему новый признак. Тогда по-прежнему можно ссылаться на исходный объект.
- Что такое алгоритмы «разделяй и властвуй»? Опишите, как они работают. Можете ли вы привести какие-либо общие примеры типов задач, в которых можно использовать этот подход?
Алгоритмы «разделяй и властвуй» — это способ отсортировать что-то, не получая больше, чем n². Они в основном разбивают вещи на более мелкие части, а затем управляют поведением на них. Примером является сортировка возрастов людей, которые хранятся в массиве.
- Как работают сортировка вставками, пирамидальная сортировка, быстрая сортировка и сортировка слиянием?
Сортировка вставками — это то, где мы можем просмотреть массив и упорядочить его, не изменяя исходный порядок массива. Например, если люди стояли в очереди и они должны были быть в порядке по возрасту. Но очередь обслуживается в порядке очереди, вы не можете встать в очередь только потому, что вы того же возраста, что и кто-то. В основном один цикл for выполняется в 0-м месте, а другой — в 1-м. Мы создаем временный массив, в котором всегда будет только одно число, потому что мы просто используем этот массив для сохранения данных, которые мы вынули, а затем сразу же помещаем их обратно.
Heapsort — это упорядоченное дерево. Он имеет максимальную кучу сборки, что означает, что верхнее число в дереве больше, чем все числа под ним. Затем мы меняем самое большое число на вершине дерева с наименьшим числом на вершине дерева. Затем мы вызываем heapify, теперь, когда наименьшее число находится вверху, оно берет самое большое число в дереве, сортирует его, а затем удаляет из дерева.
Быстрая сортировка будет иметь 3 массива: исходный, левый для всех чисел, меньших опорного числа, и правый, для всех чисел больше. Он будет делать это снова и снова, пока не останется только одно число, после чего все вернется в исходный массив.
Сортировка слиянием — это когда функция разбивает массив пополам, затем еще раз пополам и продолжает работать до тех пор, пока не будет разделен весь массив. Затем он создает резервную копию массива, каждый раз упорядочивая числа.
- Каковы ключевые преимущества сортировки вставками, быстрой сортировки, пирамидальной сортировки и сортировки слиянием? Обсудите лучшее, среднее и худшее время и сложность памяти.
ВСТАВКА средняя N²
HEAP - это среднее значение n (log (N))
QUICK - это среднее значение n(log(N))
MERGE является средним n (log (N))
- Объясните разницу между изменяемым и неизменяемым объектом.
Изменчивый означает, что его можно изменить, а неизменный означает, что его нельзя изменить.
- Что является примером неизменяемого объекта в JavaScript?
пусть сотовый телефон = {имя: «iPhone», модель: «Xmax»}
object.freeze(мобильный телефон)