1. Расскажите нам о том, что вы узнали на этой неделе.

На этой неделе я узнал, насколько весело работать в группе. Я очень конкурирую с собой, и неспособность понять что-то меня расстраивает. Даже посещение репетиторства иногда заставляет меня чувствовать себя побежденным, но благодаря этому процессу я узнаю, что работа над кодом с двумя или более мозгами кажется почти чудом. Кроме того, я получаю, чтобы узнать немного дополнений по пути!

  1. Каковы плюсы и минусы неизменности?

Одним из преимуществ неизменности является то, что мы можем использовать одну и ту же строку несколько раз. Мы можем много раз манипулировать глобальной переменной в разных функциях, но при этом иметь одно и то же начальное значение.

  1. Как добиться неизменности в собственном коде?

Я могу добиться неизменности в своем коде, используя объекты. У нас есть одно значение, которое имеет определенный атрибут. Далее в коде мы можем сделать прототип того же объекта, то есть изменить цвет или добавить к нему новый признак. Тогда по-прежнему можно ссылаться на исходный объект.

  1. Что такое алгоритмы «разделяй и властвуй»? Опишите, как они работают. Можете ли вы привести какие-либо общие примеры типов задач, в которых можно использовать этот подход?

Алгоритмы «разделяй и властвуй» — это способ отсортировать что-то, не получая больше, чем n². Они в основном разбивают вещи на более мелкие части, а затем управляют поведением на них. Примером является сортировка возрастов людей, которые хранятся в массиве.

  1. Как работают сортировка вставками, пирамидальная сортировка, быстрая сортировка и сортировка слиянием?

Сортировка вставками — это то, где мы можем просмотреть массив и упорядочить его, не изменяя исходный порядок массива. Например, если люди стояли в очереди и они должны были быть в порядке по возрасту. Но очередь обслуживается в порядке очереди, вы не можете встать в очередь только потому, что вы того же возраста, что и кто-то. В основном один цикл for выполняется в 0-м месте, а другой — в 1-м. Мы создаем временный массив, в котором всегда будет только одно число, потому что мы просто используем этот массив для сохранения данных, которые мы вынули, а затем сразу же помещаем их обратно.

Heapsort — это упорядоченное дерево. Он имеет максимальную кучу сборки, что означает, что верхнее число в дереве больше, чем все числа под ним. Затем мы меняем самое большое число на вершине дерева с наименьшим числом на вершине дерева. Затем мы вызываем heapify, теперь, когда наименьшее число находится вверху, оно берет самое большое число в дереве, сортирует его, а затем удаляет из дерева.

Быстрая сортировка будет иметь 3 массива: исходный, левый для всех чисел, меньших опорного числа, и правый, для всех чисел больше. Он будет делать это снова и снова, пока не останется только одно число, после чего все вернется в исходный массив.

Сортировка слиянием — это когда функция разбивает массив пополам, затем еще раз пополам и продолжает работать до тех пор, пока не будет разделен весь массив. Затем он создает резервную копию массива, каждый раз упорядочивая числа.

  1. Каковы ключевые преимущества сортировки вставками, быстрой сортировки, пирамидальной сортировки и сортировки слиянием? Обсудите лучшее, среднее и худшее время и сложность памяти.

ВСТАВКА средняя N²

HEAP - это среднее значение n (log (N))

QUICK - это среднее значение n(log(N))

MERGE является средним n (log (N))

  1. Объясните разницу между изменяемым и неизменяемым объектом.

Изменчивый означает, что его можно изменить, а неизменный означает, что его нельзя изменить.

  1. Что является примером неизменяемого объекта в JavaScript?

пусть сотовый телефон = {имя: «iPhone», модель: «Xmax»}

object.freeze(мобильный телефон)