GROK IT!
❓Задача по SQL: Какая команда импортирует дамп в БД mysql?
Правильный ответ раскроем завтра 😏
#grokit
❓Задача по SQL: Какая команда импортирует дамп в БД mysql?
Правильный ответ раскроем завтра 😏
#grokit
Какая команда импортирует дамп в БД mysql?
Anonymous Poll
43%
mysql -p -u root db_name < dump_name.sql
33%
mysqldump -p -u root db_name < dump_name.sql
19%
mysqldump db_name dump_name.sql
5%
mysqldump dump_name.sql
🔎 Алгоритм бинарного поиска
✅ Двоичный (или бинарный) поиск (также известен как метод деления пополам или дихотомия) — классический алгоритм поиска элемента в отсортированном массиве.
Метод использует стратегию «разделяй и властвуй», а именно: заданный массив делится на две равные части и поиск осуществляется в одной из этих частей, которая потом также делится надвое. Раздвоение происходит до тех пор, пока не обнаружится наличие искомого элемента или его отсутствие.
Использовать эту операцию, уменьшая каждый раз зону поиска вдвое, позволительно лишь потому, что элементы массива заранее упорядочены. Зная размер массива, не составит труда найти средний элемент и сравнить его значение с искомым. После этого можно уверено сказать, где относительно среднего элемента находится искомый элемент.
При этом не важно, как отсортирован массив: по убыванию или по возрастанию. От этого алгоритм существенно не поменяется.
Обычно для простоты крайний левый и крайний правый элементы называют left и right соответственно. Середину массива принято называть коротко: mid.
✅ Ход работы алгоритма, разделенный на этапы, выглядит следующим образом:
1. Поиск среднего элемента массива: mid = (left + right)/2. Значение округляется до большего или меньшего целого.
2. Средний элемент сравнивается с искомым (key), результатом этого сравнения будет один из трех случаев:
- key < mid. Зона поиска сужается до (left, mid-1), переходим к п.1;
- key > mid. Зона поиска сужается до (mid+1, right), переходим к п.1;
- key = mid. Если значения среднего и искомого элементов совпадают, то элемент найден, работа алгоритма завершается.
3. Если для проверки не осталось ни одного элемента, то алгоритм завершается, иначе выполняется переход к п.1.
✅ Короткий пример:
У нас есть массив a = 1, 4, 9, 16, 25, 36, 49. Искомое значение key = 25.
✓ 1 шаг: mid = (6 + 0)/2 = 3 – индекс среднего элемента. Значение аmid = 16.
✓ 2 шаг: сравниваем key и mid: 25>16 -> будем искать в правой половине множества:
a = 25, 36, 49.
✓ 3 шаг: mid = (2 + 0)/2 = 1 – индекс среднего элемента. Значение аmid = 36.
✓ 4 шаг: сравниваем key и mid: 25 < 36 -> будем искать в левой половине множества:
a = 25.
✓ 5 шаг: Остается один элемент, mid = (0 + 0)/2 = 0 – индекс среднего элемента. Значение аmid = 25
✓ 6 шаг: сравниваем key и mid: 25=25 мы нашли искомый элемент и алгоритм завершается.
💥 Этот метод считается одним из самых простых и популярных в информатике и часто используется в вычислительной математике и математическом программировании.
❗️Стоит отметить, что часто для метода бинарного поиска потребуется гораздо меньше времени, чем, для линейного поиска. Однако, в отличие от линейного поиска двоичный работает только с массивами, элементы которых упорядочены, что, несомненно, придает ему отрицательной специфичности.
✅ Сложность бинарного поиска составляет О(log(n)), а линейного поиска – О(n). Как мы уже показывали в нашей статье о сложности алгоритмов, класс сложности О(log(n)) менее сложный, чем О(n).
Статья про сложность алгоритмов и О-нотации 👉🏻 bit.ly/3ccVMRN
✅ Двоичный (или бинарный) поиск (также известен как метод деления пополам или дихотомия) — классический алгоритм поиска элемента в отсортированном массиве.
Метод использует стратегию «разделяй и властвуй», а именно: заданный массив делится на две равные части и поиск осуществляется в одной из этих частей, которая потом также делится надвое. Раздвоение происходит до тех пор, пока не обнаружится наличие искомого элемента или его отсутствие.
Использовать эту операцию, уменьшая каждый раз зону поиска вдвое, позволительно лишь потому, что элементы массива заранее упорядочены. Зная размер массива, не составит труда найти средний элемент и сравнить его значение с искомым. После этого можно уверено сказать, где относительно среднего элемента находится искомый элемент.
При этом не важно, как отсортирован массив: по убыванию или по возрастанию. От этого алгоритм существенно не поменяется.
Обычно для простоты крайний левый и крайний правый элементы называют left и right соответственно. Середину массива принято называть коротко: mid.
✅ Ход работы алгоритма, разделенный на этапы, выглядит следующим образом:
1. Поиск среднего элемента массива: mid = (left + right)/2. Значение округляется до большего или меньшего целого.
2. Средний элемент сравнивается с искомым (key), результатом этого сравнения будет один из трех случаев:
- key < mid. Зона поиска сужается до (left, mid-1), переходим к п.1;
- key > mid. Зона поиска сужается до (mid+1, right), переходим к п.1;
- key = mid. Если значения среднего и искомого элементов совпадают, то элемент найден, работа алгоритма завершается.
3. Если для проверки не осталось ни одного элемента, то алгоритм завершается, иначе выполняется переход к п.1.
✅ Короткий пример:
У нас есть массив a = 1, 4, 9, 16, 25, 36, 49. Искомое значение key = 25.
✓ 1 шаг: mid = (6 + 0)/2 = 3 – индекс среднего элемента. Значение аmid = 16.
✓ 2 шаг: сравниваем key и mid: 25>16 -> будем искать в правой половине множества:
a = 25, 36, 49.
✓ 3 шаг: mid = (2 + 0)/2 = 1 – индекс среднего элемента. Значение аmid = 36.
✓ 4 шаг: сравниваем key и mid: 25 < 36 -> будем искать в левой половине множества:
a = 25.
✓ 5 шаг: Остается один элемент, mid = (0 + 0)/2 = 0 – индекс среднего элемента. Значение аmid = 25
✓ 6 шаг: сравниваем key и mid: 25=25 мы нашли искомый элемент и алгоритм завершается.
💥 Этот метод считается одним из самых простых и популярных в информатике и часто используется в вычислительной математике и математическом программировании.
❗️Стоит отметить, что часто для метода бинарного поиска потребуется гораздо меньше времени, чем, для линейного поиска. Однако, в отличие от линейного поиска двоичный работает только с массивами, элементы которых упорядочены, что, несомненно, придает ему отрицательной специфичности.
✅ Сложность бинарного поиска составляет О(log(n)), а линейного поиска – О(n). Как мы уже показывали в нашей статье о сложности алгоритмов, класс сложности О(log(n)) менее сложный, чем О(n).
Статья про сложность алгоритмов и О-нотации 👉🏻 bit.ly/3ccVMRN
Умеете импортировать дамп в MySQL?
Anonymous Poll
24%
Да, базовый навык!
66%
Нет, не приходилось
10%
Не работаю с БД...
🔥 5 приемов оптимизации SQL-запросов
Порой для того, чтобы запрос работал быстрее и эффективнее, не нужно городить сложных конструкций, писать специальные функции и изобретать велосипед.
Достаточно просто написать ограничение на выводимый результат, поменять местами условия фильтрации или учитывать порядок таблиц в «джоине».
Ищите 5 базовых способов оптимизации SQL-запросов в карточках! 😉
Более подробно рассматриваем способы оптимизации SQL-запросов в нашей статье 👉🏻 bit.ly/39KqJeX
Порой для того, чтобы запрос работал быстрее и эффективнее, не нужно городить сложных конструкций, писать специальные функции и изобретать велосипед.
Достаточно просто написать ограничение на выводимый результат, поменять местами условия фильтрации или учитывать порядок таблиц в «джоине».
Ищите 5 базовых способов оптимизации SQL-запросов в карточках! 😉
Более подробно рассматриваем способы оптимизации SQL-запросов в нашей статье 👉🏻 bit.ly/39KqJeX
🔥2