Loading...
zh.stoqnov avatar zh.stoqnov 103 Точки

Homework Data Structures, Algorithms and Complexity

Здравейте колеги!

Отварям темата, защото смятам че за всички ни ще е полезно да обменим някакви решения, кой какво е разбрал и прочие. Аз лично не знам доколко ми е станало ясно всичко, което бе засегнато на първата лекция (към момента даже си мисля че не съм особено в час). Прилагам решенията си, до които аз стигнах - ще се радвам ако има критики и преди всичко обяснение кое, защо и как не е или е така. smiley

Домашно

3
Структури от данни и алгоритми 30/06/2015 18:14:56
moholovka avatar moholovka 169 Точки

Не знам дали съм прав но RemoveFirst е със сложност О(n), а не О(1). Причината е че като премахнем нулевият елемент реиндексира всички докрая, тоест минава се през целият масив. Другите според мен са правилни.

2
18/02/2016 11:36:11
tilchev92 avatar tilchev92 Trainer 128 Точки

Да прав си, аз доло съм го писал О(n), но горе в коментарите съм го объркал. Реално и RemoveFirst е O(n) защото масива пак се оразмерява.

0
18/02/2016 11:41:30
DenisDuev avatar DenisDuev 39 Точки

В общи линии от 1 до 6 са О(n) заради копирането на целия масив - повече инфо тук , а останалите са О(1) защото достъпваме по индекс - тук, и намирането на дължината- тук

2
iivanov2 avatar iivanov2 11 Точки

Моите отговори. Ако някой се чуди как съм достигнал до тях, ползвах документацията на MSDN, защото не мога да гадая методите на класа Array как са имплементирани, примерно за достъпване на елемент от масив по индекс, или пък вземането на дължината на масива, явно си се пази някъде и просто се взема а не се броят елементите. Другия начин е да се ровя в сорса на C# което не знам как става. Както Наков каза, най-важното е да правим разлика между O(1), O(n), O(log n) и О(n*n).


Problem 1.    Add(T) Complexity
O(n)

Problem 2.    Remove(index) Complexity – Worst Case
O(2n)

Problem 3.    Remove(index) Complexity – Best Case
O(2n)

Problem 4.    Remove(index) Complexity – Average Case
O(2n)

Problem 5.    RemoveFirst(T) Complexity
O(n)

Problem 6.    RemoveLast(T) Complexity
O(n)

Problem 7.    Length Complexity
O(1)

Problem 8.    This[index] Complexity
O(1)

Problem 9.    First Complexity
O(1)

Problem 10.    Last Complexity
O(1)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.