Запитання з тегом «algorithm-analysis»

Питання про науку та мистецтво визначення властивостей алгоритмів, часто включаючи правильність, час виконання та використання місця. Використовуйте тег [аналіз часу виконання] для запитань про час виконання алгоритмів.

3
Чи існує система, що стоїть за магією аналізу алгоритму?
Є багато запитань щодо того, як проаналізувати час виконання алгоритмів (див., Наприклад, час виконання та алгоритм аналізу ). Багато з них схожі, наприклад, ті, хто запитує аналіз витрат вкладених циклів або алгоритмів ділення та підкорення, але, здається, більшість відповідей зроблені спеціально. З іншого боку, відповіді на інше загальне запитання пояснюють …

13
Як обдурити евристику "спробувати деякі тестові випадки": Алгоритми, які здаються правильними, але насправді є невірними
Щоб спробувати перевірити правильність алгоритму для якоїсь проблеми, звичайним початковим пунктом є спробувати запустити алгоритм вручну на декількох простих тестових випадках - спробуйте його на кількох прикладах проблемних випадків, включаючи кілька простих "кутових випадків" ". Це чудова евристика: це чудовий спосіб швидко вилучити багато неправильних спроб алгоритму та зрозуміти, чому …

6
Як можна припустити, що основні операції над числами займають постійний час?
Зазвичай в алгоритмах нам не байдуже порівняння, додавання чи віднімання чисел - ми припускаємо, що вони працюють у часі . Наприклад, ми припускаємо це, коли говоримо, що сортування на основі порівняння - це , але коли числа занадто великі, щоб вписатись у регістри, ми зазвичай представляємо їх як масиви, тому …

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
Чому двійковий пошук швидший, ніж потрійний пошук?
Пошук масиву з елементів за допомогою двійкового пошуку займає, в гіршому випадку, ітерацій, оскільки на кожному кроці ми половину нашого простору пошуку. Якщо замість цього ми використовували "потрійний пошук", ми би відрізали дві третини свого пошукового простору при кожній ітерації, тож найгірший випадок повинен мати ітерацій ...NNNlog2Nlog2⁡N\log_2 Nlog3N&lt;log2Nlog3⁡N&lt;log2⁡N\log_3 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Наскільки я можу сказати, цінності не населяються . Функція з типом повернення 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.