Публикации по теме 'algorithms'


Прекращение проблемы остановки
Что такое проблема остановки? Проблема остановки — это аргумент, призванный показать, что не может быть «алгоритма остановки» (алгоритма, который определяет, остановится или нет другой алгоритм) за конечное количество шагов. function H(A, x){ return halts(A(x)); } Предположим, что существует алгоритм H, так что H(A, x) возвращает истину, если A (x) завершается и возвращает false, если A(x) не завершается. function A'(A){ while(H(A, A)){ }} Предположим, что существует алгоритм A',..

Сортировка вставками
Сортировка вставками — еще один простой алгоритм сортировки, но не самый эффективный. Он работает путем построения отсортированного подмассива , беря по одному элементу из заданного массива и помещая его (вставляя) в соответствующее место. Вот код: Чтобы отсортировать массив, мы перемещаем следующий элемент из правого подмассива (не отсортированный) в левый подмассив (отсортированный) в правильное положение . Мы используем простой внешний цикл for для перебора всех..

Сложность: сколько времени и места занимает ваш алгоритм?
Лучше понять свои алгоритмы, чтобы вы могли их улучшить Я очень взволнован этим постом, потому что он мой первый. После многих лет (и лет, и лет ...) откладывания я наконец начал это делать. Я надеюсь, вам понравится это чтение, но, более того, я надеюсь, что вы тоже кое-что узнаете. Этот пост посвящен тому, сколько времени и пространства использует алгоритм. Хотя есть много математических выкладок, которые могут помочь нам вычислить эти вещи, мы сосредоточимся на интуитивном..

Объяснение алгоритмов сортировки с использованием Python: сортировка слиянием
В прошлый раз мы обсуждали Быструю сортировку , а также реализовали ее рекурсивную реализацию на Python. Очень похожий рекурсивный процесс будет происходить в так называемом алгоритме сортировки слиянием. В отличие от существующих алгоритмов квадратичной сортировки, сортировка слиянием имеет среднюю сложность O(n * log(n)) . Основные принципы его работы следующие: разбить несортированный список на подсписки размером 1; многократно объединять подсписки для создания новых..

Пример вычислительного мышления: реализация алгоритмов поиска с помощью JavaScript
Вычислительное мышление сочетает концептуальное понимание с практическим применением в программировании. В контексте поиска алгоритмы играют ключевую роль в быстром и эффективном поиске данных. Давайте рассмотрим простой пример и его реализацию на JavaScript. Пример Книжный интернет-магазин желает предложить функцию поиска книг по их названиям. Поскольку в каталоге тысячи книг, эффективность алгоритма имеет первостепенное значение для быстрого реагирования пользователей...

Блог Work-Bench — объявляем о наших инвестициях в алгоритмы
Предоставление компаниям любого размера возможности централизации, повторного использования и производственной обработки данных Мы рады сообщить, что Work-Bench присоединяется к новому фонду Google, ориентированному на инвестиции в ИИ и машинное обучение, Madrona, Rakuten Ventures и Osage University Partners, чтобы инвестировать в Algorithmia серии A на сумму 10,5 млн долларов. Для внешнего мира наука о данных может показаться пустяком. Но на корпоративном уровне и в масштабе..

Подсчитайте пары в массиве, сумма которых делится на K
Дан массив a[] и натуральное число K . Задача состоит в том, чтобы подсчитать общее количество пар в массиве, сумма которых делится на K . >. т. е. определить количество пар (i,j), где и i+j делится на K . Решение O(n²): Наивный подход: int countPairs(int arr[], int n, int K) { int ans = 0; for(int i = 0; i < n; ++i) { for(int j = i+1; j < n; ++j) { if(arr[i]+arr[j] % K == 0) { ans++; } } O(n) решение: Небольшая..