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

Алгоритм - це послідовність чітко визначених кроків, яка визначає абстрактне рішення проблеми. Використовуйте цей тег, коли ваша проблема пов’язана з дизайном алгоритму.

30
Як змінити список, пов'язаний окремо, використовуючи лише два покажчики?
Мені цікаво, чи існує якась логіка, щоб перетворити окремо пов'язаний список, використовуючи лише два покажчики. Нижче використовується для зміни одного пов'язаного списку з використанням трьох покажчиків , а саме p, q, r: struct node { int data; struct node *link; }; void reverse() { struct node *p = first, *q …

13
Quicksort: вибір вивороту
При впровадженні Quicksort однією з речей, що вам потрібно зробити, є вибір стрижня. Але коли я дивлюсь на псевдокод, як той, що нижче, не зрозуміло, як я повинен вибрати шарнір. Перший елемент списку? Щось ще? function quicksort(array) var list less, greater if length(array) ≤ 1 return array select and remove …

10
рекурсія проти ітерації
Чи правильно сказати, що скрізь, де використовується рекурсія, може використовуватися forцикл? А якщо рекурсія зазвичай повільніше, що є технічною причиною того, що коли-небудь використовувати її за допомогою forітерації циклу? І якщо завжди можна перетворити рекурсію в forцикл, чи існує правило, як це зробити?

4
Навіщо використовувати алгоритм Дейкстри, якщо перший пошук за шириною (BFS) може зробити те ж саме швидше?
Обидва можуть бути використані для пошуку найкоротшого шляху з одного джерела. BFS працює O(E+V), а Dijkstra працює O((V+E)*log(V)). Крім того, я бачив, як Dijkstra багато використовував, як у протоколах маршрутизації. Отже, навіщо використовувати алгоритм Дейкстри, якщо BFS може зробити те ж саме швидше?

20
Сортування вставки проти сортування
Я намагаюся зрозуміти відмінності між сортуванням вставки та сортуванням вибору. Вони, схоже, мають два компоненти: несортований список та відсортований список. Вони, схоже, беруть один елемент із несортованого списку і вкладають його у відсортований список у потрібному місці. Я бачив деякі сайти / книги, які говорять про те, що сортування селекції …

30
Підрахунок інверсій у масиві
Я розробляю алгоритм, щоб зробити наступне: Дано масив A[1... n], для кожного i < jзнайдіть усі пари інверсії такі A[i] > A[j]. Я використовую сортування об'єднань і копіюю масив A до масиву B, а потім порівнюю два масиви, але мені важко бачити, як я можу використовувати це для пошуку кількості …
108 algorithm 


5
Яка перевага у використанні фільтрів цвітіння?
Я читаю фільтри цвітіння, і вони просто здаються дурними. Все, що ви можете виконати за допомогою фільтра цвітіння, ви могли б досягти за менший простір, ефективніше, використовуючи одну функцію хешу, а не множину, або саме так здається. Чому б ви використовували фільтр цвітіння і чим він корисний?


14
Об'єднана площа колів, що перекриваються
Нещодавно я зіткнувся з проблемою, коли у мене було чотири кола (середні точки і радіус) і мені довелося обчислити площу об'єднання цих кіл. Приклад зображення: Для двох кіл це досить просто, Я можу просто обчислити частку площі кожного кола, яка не знаходиться в межах трикутників, а потім обчислити площу трикутників. …
107 algorithm  geometry  area 

2
Сегментація зображень із застосуванням середнього зсуву
Чи може хто-небудь допомогти мені зрозуміти, як насправді працює сегментація середньої зміни? Ось матриця 8х8, яку я щойно склав 103 103 103 103 103 103 106 104 103 147 147 153 147 156 153 104 107 153 153 153 153 153 153 107 103 153 147 96 98 153 153 …

15
Чи можна спростити (x == 0 || x == 1) в одну операцію?
Тож я намагався записати n- е число в послідовності Фібоначчі в максимально компактній функції: public uint fibn ( uint N ) { return (N == 0 || N == 1) ? 1 : fibn(N-1) + fibn(N-2); } Але мені цікаво, чи можу я зробити це ще більш компактним та ефективним, …


14
Максимальна кількість символів за допомогою натискань клавіш A, Ctrl + A, Ctrl + C і Ctrl + V
Це питання інтерв'ю від google. Я не в змозі вирішити це самостійно. Може хтось пролити світло? Напишіть програму для друку послідовності натискань клавіш, щоб вона генерувала максимальну кількість символів "A". Вам дозволяється використовувати тільки 4 клавіші: A, Ctrl+ A, Ctrl+ Cі Ctrl+ V. Допускається лише N натискань клавіш. Усі Ctrlсимволи …
106 algorithm 

6
Що б спричинило складність алгоритму O (log n)?
Мої знання про big-O обмежені, і коли в журналі з’являються умови журналу, це відкидає мене ще більше. Може хтось може просто пояснити мені, що таке O(log n)алгоритм? Звідки береться логарифм? Це спеціально з’явилося, коли я намагався вирішити це питання середньої практики: Нехай X (1..n) і Y (1..n) містять два списки …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.