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

На этой неделе мы изучили алгоритмы и основы сортировки.

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

Плюсы неизменности:

Упрощенный поток данных через приложения. Убрано требование к защитному копированию данных. Оптимизация за счет обнаружения изменений данных. Повышение производительности за счет мемоизации.

Минусы неизменности:

Документация и отладка, вонь против шаблонов, не совсем ES6.

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

Изменяя данные, вы можете получить код, который трудно читать и который подвержен ошибкам. Для примитивных значений (таких как числа и строки) довольно легко написать «неизменяемый» код, потому что примитивные значения не могут быть изменены сами по себе. Переменные, содержащие примитивные типы, всегда указывают на фактическое значение. Если вы передадите его другой переменной, другая переменная получит новую копию этого значения.

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

Алгоритмы «разделяй и властвуй» — это когда вы «делите» массив элементов на две части, затем сортируете каждую по отдельности (или «преодолеваете» проблему), а затем сшиваете их вместе для нашего решения. Вы могли бы использовать это в задаче, когда вы сортируете два меньших списка, тогда сшивание их вместе проще, чем сортировка одного большого списка.

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

Сортировка вставками — это простой алгоритм сортировки, который строит окончательный отсортированный массив (или список) по одному элементу за раз. Heapsort — это нестабильный алгоритм сортировки на основе сравнения, который использует структуру данных, называемую максимальной кучей. Quicksort вы должны выбрать точку опоры. Это может быть выбрано случайным образом или среднее. Здесь мы выбираем последний элемент массива. Поместите все элементы, меньшие, чем опорное значение, слева и больше, чем опорное значение, справа. Повторите шаг 2 как для левой, так и для правой стороны сводной точки (выберите опорную точку, поместите все элементы, меньшие, чем опорная, слева и большие справа). Сортировка слиянием — один из самых популярных алгоритмов сортировки сегодня, и он использует концепция разделяй и властвуй для сортировки списка элементов. Это означает, что он разделит большую проблему на более мелкие, а затем решит каждую из маленьких проблем, чтобы решить большую проблему, с которой мы начали.

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

Изменяемые объекты имеют поля, которые можно изменить, неизменяемые объекты не имеют полей, которые можно изменить после создания объекта.

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

пусть человек={имя:'паван',возраст:26}

let newPerson={…человек,имя:'раджу'}

console.log(newPerson===человек)

console.log(человек)

console.log(новый человек)