Вопросы с тегом «algorithm-analysis»

Вопросы о науке и искусстве определения свойств алгоритмов, часто включая правильность, время выполнения и использование пространства. Используйте тег [runtime-analysis] для вопросов о времени выполнения алгоритмов.

3
Есть ли система за магией анализа алгоритма?
Существует множество вопросов о том, как анализировать время выполнения алгоритмов (см., Например, анализ времени выполнения и анализ алгоритма ). Многие из них похожи, например, те, которые запрашивают анализ затрат на вложенные циклы или алгоритмы «разделяй и властвуй», но большинство ответов, похоже, сделаны специально. С другой стороны, ответы на другой общий …

13
Как обмануть эвристику «попробуй несколько тестов»: алгоритмы, которые кажутся правильными, но на самом деле неверны
Чтобы попытаться проверить, является ли алгоритм для какой-либо проблемы правильным, обычная отправная точка состоит в том, чтобы попытаться запустить алгоритм вручную на нескольких простых тестовых примерах - попробуйте на нескольких примерах проблемных примеров, включая несколько простых «угловых случаев ». Это отличная эвристика: это отличный способ быстро отсеять множество неверных попыток …

6
Как мы можем предположить, что основные операции над числами занимают постоянное время?
Обычно в алгоритмах мы не заботимся о сравнении, сложении или вычитании чисел - мы предполагаем, что они выполняются за время . Например, мы предполагаем это, когда говорим, что сортировка на основе сравнения - это O ( n log n ) , но когда числа слишком велики, чтобы поместиться в регистры, …

4
(Когда) поиск по хеш-таблице O (1)?
Часто говорят, что поиск в хеш-таблице работает в постоянное время: вы вычисляете значение хеш-функции, которое дает вам индекс для поиска в массиве. Все же это игнорирует столкновения; в худшем случае каждый предмет попадает в одно и то же ведро, и время поиска становится линейным ( ).Θ(n)Θ(n)\Theta(n) Существуют ли условия для …

5
Как этот алгоритм сортировки Θ (n³), а не Θ (n²), в худшем случае?
Я только начал изучать структуры данных и алгоритмы, и мой ассистент дал нам следующий псевдокод для сортировки массива целых чисел: void F3() { for (int i = 1; i < n; i++) { if (A[i-1] > A[i]) { swap(i-1, i) i = 0 } } } Это может быть непонятно, …

3
Почему бинарный поиск быстрее, чем троичный?
Поиск массив элементов с помощью бинарного поиска дублей, в худшем случае журнал 2 N итераций , потому что на каждом шаге мы подрезать половину нашего пространства поиска. Если бы вместо этого мы использовали «троичный поиск», мы бы вырезали две трети пространства поиска на каждой итерации, поэтому в худшем случае должно …

2
Порядок определения роста от Reynolds & Tymann
Я читаю книгу под названием « Принципы информатики» (2008) Карла Рейнольдса и Пола Тиманна (опубликована в «Схемах Шаума»). Во второй главе представлены алгоритмы с примером последовательного поиска, который просто перебирает список имен и возвращает TRUE, если в списке найдено данное имя. Автор продолжает (стр. 17): Мы говорим, что «порядок роста» …

3
Как моделируется сложность алгоритма для функциональных языков?
Сложность алгоритма разработана так, чтобы не зависеть от деталей более низкого уровня, но она основана на императивной модели, например, доступ к массиву и изменение узла в дереве занимают O (1) времени. Это не так в чисто функциональных языках. Список Haskell требует линейного времени для доступа. Модификация узла в дереве включает …

4
Как измерить «сортировку»
Мне интересно, есть ли стандартный способ измерения "сортировки" массива? Будет ли массив с медианным числом возможных инверсий считаться максимально несортированным? Под этим я подразумеваю, что это в основном как можно дальше от сортировки или обратной сортировки.

2
Насколько асимптотически плохо наивные тасовки?
Хорошо известно, что этот «наивный» алгоритм перестановки массива путем замены каждого элемента на другой, случайно выбранный, не работает правильно: for (i=0..n-1) swap(A[i], A[random(n)]); В частности, поскольку на каждой из итераций делается один из вариантов (с одинаковой вероятностью), существует возможных «путей» в вычислениях; потому что количество возможных перестановокне делится равномерно на …

4
Как O и Ω относятся к худшему и лучшему случаям?
Сегодня в лекции мы обсудили очень простой алгоритм поиска элемента в отсортированном массиве с использованием бинарного поиска . Нас попросили определить его асимптотическую сложность для массива из элементов.nnn Моя идея заключалась в том, что это явно или чтобы быть более конкретным, потому что - это число операций в худшем случае. …

3
Повлияет ли аппаратное обеспечение / реализация на временную / пространственную сложность алгоритмов?
Я даже не студент CS, так что это может быть глупым вопросом, но, пожалуйста, потерпите меня ... В до-компьютерную эпоху мы можем реализовать структуру данных массива только с чем-то вроде массива ящиков. Так как перед извлечением значения из него нужно найти ящик с соответствующим индексом, временная сложность поиска в массиве …

8
Является ли проблемой быть программистом без знания вычислительной сложности?
Я получил задание в моем университете. Я взял его домой и попытался запрограммировать алгоритм для его решения, это было что-то, связанное с графиками, поиск связанных компонентов, я думаю. Затем я сделал самую тривиальную вещь, которая пришла мне в голову, а затем показала моему лектору. После непродолжительного наблюдения он понял, что …

2
Как доказать, что жадный алгоритм верен
У меня есть жадный алгоритм, который, я подозреваю, может быть правильным, но я не уверен. Как мне проверить, правильно ли это? Какие методы использовать для доказательства правильности жадного алгоритма? Существуют ли общие модели или методы? Я надеюсь, что это станет справочным вопросом, на который можно указать новичкам; следовательно, его более …

2
Почему пустой тип C не аналогичен пустому / нижнему типу?
Википедия, а также другие источники, которые я обнаружил в списке voidтипа C как тип единицы, а не пустой тип. Мне кажется, что это сбивает с толку, так как мне кажется, что оно voidлучше подходит под определение пустого / нижнего типа voidНасколько я могу судить, ценности не обитают . Функция с …
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.