<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem złożoność</title>
<link>https://forum.pasja-informatyki.pl/tag/z%C5%82o%C5%BCono%C5%9B%C4%87</link>
<description>Powered by Question2Answer</description>
<item>
<title>Złożoność obliczeniowa algorytmy</title>
<link>https://forum.pasja-informatyki.pl/593041/zlozonosc-obliczeniowa-algorytmy</link>
<description>

&lt;p&gt;Witam, mógłby mi ktoś pomóc określić złożoność obliczeniową algorytmu i wytłumaczyć dlaczego tak?&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
wynik := n;​

 for i := 1 to n do​

   if (i &amp;lt; wynik and r[i]+r[wynik] &amp;lt;= R)​

    wynik := wynik-1;​

​&lt;/pre&gt;



&lt;p&gt;​&lt;/p&gt;



&lt;p&gt;​&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593041/zlozonosc-obliczeniowa-algorytmy</guid>
<pubDate>Tue, 16 Apr 2024 22:43:52 +0000</pubDate>
</item>
<item>
<title>Zadanie A + B - szkopuł</title>
<link>https://forum.pasja-informatyki.pl/585318/zadanie-a-b-szkopul</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Zacząłem robić zadanie:&amp;nbsp;&lt;a href=&quot;https://szkopul.edu.pl/problemset/problem/kzUlU--NjB0KKAGvz2es62f8/site/?key=statement&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://szkopul.edu.pl/problemset/problem/kzUlU--NjB0KKAGvz2es62f8/site/?key=statement&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;I udało mi się zrobić wybitnie nieoptymalne rozwiązanie za które dostałem 30pkt:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;

unsigned long long strange_add(unsigned long long a, unsigned long long b) {
	std::string s1 = std::to_string(a);
	std::string s2 = std::to_string(b);

	if (s2.length() &amp;gt; s1.length())
		std::swap(s1, s2);

	size_t diff = s1.length() - s2.length();
	std::string result = s1.substr(0, diff);
	s1.erase(0, diff);

	for (int i = 0; i &amp;lt; s2.length(); i++) {
		int x = s1[i] - '0';
		int y = s2[i] - '0';

		result.append(std::to_string(x + y));
	}

	return std::stoull(result);
}

int main()
{
	unsigned long long n;
	std::cin &amp;gt;&amp;gt; n;

	int combinations = 2;
	for (unsigned long long i = 1; i &amp;lt; n; i++) {
		for (unsigned long long j = n; j &amp;gt;= i; j--) {
			if (strange_add(i, j) == n) {
				combinations += i == j ? 1 : 2;
			}
		}
	}

	std::cout &amp;lt;&amp;lt; combinations;

	return 0;
}
&lt;/pre&gt;



&lt;p&gt;Ogółem to na początku miałem całkiem inne podejście - chciałem badać kolejne cyfry podanej liczby i dla każdej z nich liczyć możliwe rozwiązania. Zauważyłem, że dla każdej cyfry &amp;lt; 20 liczba możliwości to cyfra+1 (przynajmniej tak mi się wydaje). I kiedy iterując cyfry od końca kolejna to 1 to właśnie robiłem te operacje dla liczby dwucyfrowej&amp;nbsp;zamiast pojedyńczo. Ta technika sprawdza się w wielu przypadkach, np. dla 188 to będzie możliwości dla 8 * możliwości dla 18, czyli 9*19, czyli 171. Ale w pewnych przypadkach to nie działa. Np. własnie dla liczby 112. Powinno być możliwości dla 12 * dla 1, czyli 13*2 co daje 26, a prawidłowa odpowiedź to 50.&lt;/p&gt;



&lt;p&gt;Ten sposób psuje się przy kilku jedynkach obecnych w liczbie, np. właśnie dla 112 lub 1111. Bo wtedy nie wiadomo, w przypadku np. 112, czy jako całość&amp;nbsp;uważać 11 czy 12, a może każda cyfra jest odrębna. Jest wiele kombinacji.&lt;/p&gt;



&lt;p&gt;Więc w jaki sposób mógłbym znacznie zmniejszyć złożonośc tego algorytmu?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/585318/zadanie-a-b-szkopul</guid>
<pubDate>Tue, 30 May 2023 20:06:22 +0000</pubDate>
</item>
<item>
<title>Złożoność obliczeniowa</title>
<link>https://forum.pasja-informatyki.pl/582640/zlozonosc-obliczeniowa</link>
<description>

&lt;p&gt;Mam takie pytanie odnośnie złożoności obliczeniowej dla programu. Dokładnie chodzi mi o przypadek kiedy mam np. tablice dwuwymiarową 5x5 więc ma ona 25 elementów, jeśli dobrze rozumiem n=25 i w przypadku przejścia po całej tablicy dwoma forami np:&lt;/p&gt;



&lt;p&gt;for(int i=0;i&amp;lt;5;i++){&lt;/p&gt;



&lt;p&gt;for(int j=0;j&amp;lt;5;j++){&lt;/p&gt;



&lt;p&gt;}&lt;/p&gt;



&lt;p&gt;}&lt;/p&gt;



&lt;p&gt;czy ta złożoność jest równa O(n), ponieważ myślałem nad przykladem, w którym miałbym doczynienia z tablica jednowymiarowa o dlugości 25 i użyłbym do przejścia przez jej elementy jednego fora:&lt;/p&gt;



&lt;p&gt;for(int i=0;i&amp;lt;25;i++)&lt;/p&gt;



&lt;p&gt;i w tym przypadku wiem ze ta złożoność jest równa O(n)&lt;/p&gt;



&lt;p&gt;Dlatego tutaj pojawia się moje pytanie czy to ,że używam dwóch pętli tworzy złożoność mojego algorytmu jest równy O(n^2) ,a może O(n*m) mimo tego, że wykonuje tyle samo kroków jak dal tablicy jednowymiarowej. Jeśli tak bardzo prosiłbym o wyjaśnienie .&lt;/p&gt;



&lt;p&gt;Z góry dziękuje &lt;img alt=&quot;&quot; src=&quot;https://static.xx.fbcdn.net/images/emoji.php/v9/t4c/1/16/1f642.png&quot; style=&quot;height:16px; width:16px&quot;&gt;&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/582640/zlozonosc-obliczeniowa</guid>
<pubDate>Wed, 22 Mar 2023 21:51:21 +0000</pubDate>
</item>
<item>
<title>Złożoność czasowa, a pamięciowa</title>
<link>https://forum.pasja-informatyki.pl/580880/zlozonosc-czasowa-a-pamieciowa</link>
<description>Wie ktos moze, czy duza zlozonosc pamieciowa moze wplynac na zlozonosc czasowa? np jak potrzebne mi jest do programu 1000 zmiennych w tablicy, a ja utworze milion to czy moze to wplynac na czas dzialania programu? mam na mysli zadanka na szkopule</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/580880/zlozonosc-czasowa-a-pamieciowa</guid>
<pubDate>Fri, 24 Feb 2023 11:03:26 +0000</pubDate>
</item>
<item>
<title>Jaką ten algorytm ma złożonność?, Zadanie Zawody 1 etap OI, Algorytm Dijkstry</title>
<link>https://forum.pasja-informatyki.pl/579911/jaka-ten-algorytm-ma-zlozonnosc-zadanie-zawody-1-etap-oi-algorytm-dijkstry</link>
<description>

&lt;p&gt;Natknąłem się na zadanie Zawody z 1 etapu XI OI:&amp;nbsp;&lt;a href=&quot;https://szkopul.edu.pl/problemset/problem/UiDG8sd_wsS2RfUPL3zQQ1XW/site/?key=statement&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://szkopul.edu.pl/problemset/problem/UiDG8sd_wsS2RfUPL3zQQ1XW/site/?key=statement&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Napisałem algorytm, który wydaje mi się, że działa w O(N^2 * lg(N) ), odpalam Dijkstrę z każdego wierzchołka x, do którego wychodzi krawędź z wierzchołka 1 -&amp;gt; x (wierzchołek 1 to wejściowy). Kod wchodził na 70pkt, ale po dodaniu linii 57 i 58(żeby nie iśc niepotrzebnie tą Dijkstrą, jak wynik i tak będzie większy) daje 100pkt z bardzo dużym zapasem. Myślałem, że to poprostu przyśpieszy, ale myślałem, że nie wejdzie na 100, bo dalej jest O(N^2 * lg(N)). Więc zastanawiam się, czy złożonność się amortyzuje do lepszej złożonności, czy poprostu dlatego, że jest tylko 10 testów właściwych + 5 przykładowych(W wszystkich się szybko kończy)? W ksiażce &quot;Przygody&amp;nbsp;Bajtazara 25 lat Olimpiady Informatycznej&quot; jest opisane rozwiązanie O((N+M) * lg(N)), którego jeszcze nie rozumiem, ale tez używają tam Dijkstry.&amp;nbsp;Poglądowy rysunek mojego rozwiązania, jakbym źle opisał. Na czerwono zaznaczone wierzchołki, z których puszczam Dijkstrę(osobno), na zielono jakieś przykładowe wierzchołki z krawędziami(gdzie zwroty to wierzchołki), a wierzchołek &quot;wejsciowy&quot;, ma numer 1.&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=5193156014700438028&quot; style=&quot;height:337px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;Kod:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;set&amp;gt;

using namespace std;

struct Krawedz
{
    int do_kogo;
    int waga;
};

struct Element_seta
{
    int wierzcholek;
    int wartosc;
    bool operator &amp;lt; (const Element_seta &amp;amp;element_seta) const
    {
        if (wartosc == element_seta.wartosc)
            return wierzcholek &amp;lt; element_seta.wierzcholek;
        return wartosc &amp;lt; element_seta.wartosc;
    }
};

int n = 0, m = 0, a = 0, b = 0, c = 0, d = 0, wyn = 0, min_wyn = 1e9+20;
vector&amp;lt;vector&amp;lt;Krawedz&amp;gt;&amp;gt; krawedzie;
vector&amp;lt;int&amp;gt; dp;
set&amp;lt;Element_seta&amp;gt; S;

int main()
{
    // O(N^2 * lg(N))???
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin &amp;gt;&amp;gt; n &amp;gt;&amp;gt; m;
    krawedzie.assign(n+1,{});
    dp.assign(n+1,-1);
    for (int i = 0; i &amp;lt; m; ++i)
    {
        cin &amp;gt;&amp;gt; a &amp;gt;&amp;gt; b &amp;gt;&amp;gt; c &amp;gt;&amp;gt; d;
        krawedzie[a].push_back({b,c});
        krawedzie[b].push_back({a,d});
    }

    for (int i = 0; i &amp;lt; krawedzie[1].size(); ++i)
    {
        fill(dp.begin(),dp.end(),-1);
        S.clear();
        dp[krawedzie[1][i].do_kogo] = krawedzie[1][i].waga;
        S.insert({krawedzie[1][i].do_kogo,krawedzie[1][i].waga});
        wyn = -1;
        while(!S.empty())
        {
            Element_seta spr = *S.begin();
            if (spr.wartosc &amp;gt; min_wyn)
                break;
            S.erase(spr);
            if (spr.wierzcholek == 1)
            {
                wyn = spr.wartosc;
                break;
            }
            for (int j = 0; j &amp;lt; krawedzie[spr.wierzcholek].size(); ++j)
            {
                int v = krawedzie[spr.wierzcholek][j].do_kogo;
                if (v == 1 &amp;amp;&amp;amp; spr.wierzcholek == krawedzie[1][i].do_kogo)
                    continue;
                if (dp[v] == -1 || spr.wartosc + krawedzie[spr.wierzcholek][j].waga &amp;lt; dp[v])
                {
                    auto it = S.find({v,dp[v]});
                    if (it != S.end())
                        S.erase(*it);
                    dp[v] = spr.wartosc + krawedzie[spr.wierzcholek][j].waga;
                    S.insert({v,spr.wartosc + krawedzie[spr.wierzcholek][j].waga});
                }
            }
        }
        if (wyn != -1)
            min_wyn = min(min_wyn,wyn);
    }

    cout &amp;lt;&amp;lt; min_wyn &amp;lt;&amp;lt; '\n';

    return 0;
}
&lt;/pre&gt;



&lt;p&gt;Z góry dziękuję za pomoc i poświęcony czas!&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/579911/jaka-ten-algorytm-ma-zlozonnosc-zadanie-zawody-1-etap-oi-algorytm-dijkstry</guid>
<pubDate>Sun, 12 Feb 2023 15:29:36 +0000</pubDate>
</item>
<item>
<title>c++, wczytywanie z pliku do tablicy, złożoność obliczeniowa</title>
<link>https://forum.pasja-informatyki.pl/576316/c-wczytywanie-z-pliku-do-tablicy-zlozonosc-obliczeniowa</link>
<description>

&lt;p&gt;Napisz program, który określi czy wczytany z pliku do tablicy ciąg jest palindromem tekstowym.&amp;nbsp;Podaj złożoność obliczeniową stworzonego przez siebie algorytmu.&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;fstream&amp;gt;

using namespace std;

int main()
{
    string linia;
    fstream plik;
    int *tablica;
    int ile;
    cin&amp;gt;&amp;gt;ile;
    tablica=new int[ile];

    plik.open(&quot;palindromy.txt&quot;, ios::in);
    if(plik.good() == true)
    {
        while(!plik.eof())
        {
            getline(plik, linia);
            cout &amp;lt;&amp;lt; linia &amp;lt;&amp;lt; endl;//wyświetlenie linii
        }
    }
        else cout&amp;lt;&amp;lt;&quot;Plik jest bad&quot;;
        int temp;
        for(int i = 0; i &amp;lt; ile &amp;amp;&amp;amp; plik &amp;gt;&amp;gt; temp; ++i)   // (1)
        {
            tablica[i] = temp; // (2)
            cout&amp;lt;&amp;lt;tablica[i];
        }
        plik.close();



    int i=0;
    int j=ile-1;
    while(i&amp;lt;j)
    {
        if(tablica[i]==tablica[j])
        {
            i++;
            j--;
        }
        else break;
    }
    cout&amp;lt;&amp;lt;endl;
    if(i&amp;lt;j) cout&amp;lt;&amp;lt;&quot;To nie jest palindrom&quot;&amp;lt;&amp;lt;endl;
    else cout&amp;lt;&amp;lt;&quot;To jest palindrom&quot;&amp;lt;&amp;lt;endl;


    return 0;
}
&lt;/pre&gt;



&lt;p&gt;Próbowałam robić to w ten sposób, ale gdy wpisałam do pliku słowo kajak które jest palindromem program wyświetlał mi i tak to nie jest palindrom. I w jaki sposób mam podać złożoność obliczeniową algorytmu?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/576316/c-wczytywanie-z-pliku-do-tablicy-zlozonosc-obliczeniowa</guid>
<pubDate>Wed, 14 Dec 2022 11:46:47 +0000</pubDate>
</item>
<item>
<title>Sumowanie przedziałów - mała złożoność</title>
<link>https://forum.pasja-informatyki.pl/573300/sumowanie-przedzialow-mala-zlozonosc</link>
<description>Witam, dostałem zadanie w którym na wejściu dostaję liczbę całkowitą n oraz poniżej n par liczb. W każdej parze pierwsza liczba to początek a druga to koniec przedziału. Moim zadaniem jest wypisanie liczby l (ile przedziałów udało sie stworzyć po zsumowaniu przedziałów z wejścia) oraz właśnie te zsumowane przedziały. Zrobiłem to zadanie ze złożonością czasową n^2, a potrzebuję jakiegoś rozwiązania z mniejszą złożonością (najlepiej liniową). Kompletnie nie mam żadnego pomysłu jak to zrobić aby złożoność była mniejsza niż n^2. Proszę o pomoc. Piszę to w C++.&lt;br /&gt;
Przykład:&lt;br /&gt;
we:&lt;br /&gt;
2&lt;br /&gt;
1 3&lt;br /&gt;
2 5&lt;br /&gt;
wy:&lt;br /&gt;
1&lt;br /&gt;
1 5</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/573300/sumowanie-przedzialow-mala-zlozonosc</guid>
<pubDate>Tue, 18 Oct 2022 11:48:17 +0000</pubDate>
</item>
<item>
<title>Zlozonnośc czasowa</title>
<link>https://forum.pasja-informatyki.pl/566669/zlozonnosc-czasowa</link>
<description>

&lt;p&gt;Cześc,&lt;/p&gt;



&lt;p&gt;Dodawanie elementów na set ma O(log n). A czy dodanie seta na set - kod poniżej.&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;set&amp;gt;

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    set&amp;lt;set&amp;lt;int&amp;gt;&amp;gt; zbior_main;

    zbior_main.insert({1,2,3});
    return 0;
}&lt;/pre&gt;



&lt;p&gt;Też ma O(log n)?&lt;/p&gt;



&lt;p&gt;Wiem, że jest coś takiego jak sumy harmoniczne i z tego co czytałem, to może to być identyfikatorem. Wie ktoś jak to działa?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/566669/zlozonnosc-czasowa</guid>
<pubDate>Thu, 19 May 2022 19:53:24 +0000</pubDate>
</item>
<item>
<title>Jak oszacować złożoność czasową mojego algorytmu?</title>
<link>https://forum.pasja-informatyki.pl/559964/jak-oszacowac-zlozonosc-czasowa-mojego-algorytmu</link>
<description>

&lt;p&gt;Cześć . Właśnie napisałem algorytm w C# , który wypełnia „jodełką” tablicę kwadratową o wymiarze n.
&lt;br&gt;
Np. dla n równego 5, tablica ta jest postaci:
&lt;br&gt;
1 1 1 1 1
&lt;br&gt;
1 2 2 2 2
&lt;br&gt;
1 2 3 3 3
&lt;br&gt;
1 2 3 4 4
&lt;br&gt;
1 2 3 4 5&lt;/p&gt;



&lt;p&gt;Muszę oszacować złożoność czasową mojego algorytmu , jednakże nie za bardzo pojmuje czy dobrze myślę byłbym bardzo wdzięczny za wskazówki jak i doradzenie w tej sprawie.&lt;/p&gt;



&lt;p&gt;Operacja dominująca :&lt;/p&gt;



&lt;p style=&quot;margin-left:35.4pt&quot;&gt;pętla for?&lt;/p&gt;



&lt;p&gt;Funkcja złożoności (w najgorszym przypadku):&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F(N)=O[(1+n)/2]*n=O[(n/2)+(n^2)/2]=O(n^2) - złożoność kwadratowa.&lt;/p&gt;



&lt;p&gt;Rząd złożoności w najgorszym przypadku:&lt;/p&gt;



&lt;p style=&quot;margin-left:35.4pt&quot;&gt;tutaj nie wiem?&lt;/p&gt;



&lt;p&gt;Mam też pytanie czy jest jakiś program , który po wrzuceniu kodu wyrzuci mi wykres zależności czasu wypełnienia tablicy kwadratowej? Jeżeli nie to w jaki sposób mógłbym to zrobić?&lt;img alt=&quot;cheeky&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/tongue_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;cheeky&quot;&gt;&lt;/p&gt;



&lt;p&gt;Mój kod:&lt;/p&gt;



&lt;pre class=&quot;brush:csharp;&quot;&gt;
class Program
    {
        static void Main(string[] args)
        {
            int n = 8;

            int[,] tab = new int[n, n];  //tworzenie tablicy kwadratowej o wymiarze n

            int number = 1;  //numer od jakiego zaczynamy wstawiać do tablicy
            int index = 0;  //index od ktorego wstawiamy do tablicy

            for (int i = 0; i &amp;lt; n; i++)  //pętla wstawiająca elementy
            {
                for (int j = index; j &amp;lt; n; j++)
                {
                    tab[index, j] = number;  //przypisywanie elementów
                    tab[j, index] = number;  //przypisywanie elementów
                }
                index++;  //zwiekszanie indexu
                number++;  //zwiekszanie liczby
            }

            for (int i = 0; i &amp;lt; n; i++)
            {
                for (int j = 0; j &amp;lt; n; j++)
                {
                    Console.Write(tab[i, j]);
                }
                Console.WriteLine(&quot;&quot;);
            }
        }
    }&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C#</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/559964/jak-oszacowac-zlozonosc-czasowa-mojego-algorytmu</guid>
<pubDate>Sun, 30 Jan 2022 01:46:30 +0000</pubDate>
</item>
<item>
<title>Złożoność Obliczeniowa i Poprawność programu - gdzie się uczyć?</title>
<link>https://forum.pasja-informatyki.pl/558524/zlozonosc-obliczeniowa-i-poprawnosc-programu-gdzie-sie-uczyc</link>
<description>Hej :)&lt;br /&gt;
&lt;br /&gt;
Potrzebuje waszej porady - szukam materiałów najlepiej video które w prosty i jasny sposób wyjaśniły by mi z programowania (w oparciu o c++) tematy dotyczące:&lt;br /&gt;
&lt;br /&gt;
- Złożoności Obliczeniowej: Tutaj ogarniam trochę teorię, że jest m.in duże O które może przyjmować różne wartości od stałych, liniowe kwadratowe, logarytmy itp. ale właśnie nie wiem jak już odczytać z kodu tą właśnie złożoność jak np. wychodzi tam log (bo pętle for to są O(n) ale też nie zawsze bo jak jest jedna pętla zależna od drugiej to już inaczej wychodzi...)&lt;br /&gt;
&lt;br /&gt;
- Częściowej Poprawności programów oraz Całkowitej Poprawności programu : Tutaj może rozumiem założenia co ma na myśli ta część tematu ale nie rozumiem jak ją sprawdzić itp. bo na wykładzie były trudne zagadnienia dotyczące trójki hoera, trudne zapisy itp. za to na laboratorium pokazał nam wykładowca funkcję assert w c++ i to, że są asercje początkowe (czyli jakie warunki musi spełnić dane przed rozpoczęciem programu), niezmiennik (czyli jakaś operacja typu if, dodawanie itp która zawsze jest taka sama) i asercja końcowa gdzie sprawdzamy czy wynik który wyszedł jest poprawny) - tylko te assert c++ to dla mnie jest to samo co if tylko że sam generuje błąd jak nie spełnia warunku&lt;br /&gt;
&lt;br /&gt;
Ponieważ nie ogarniam tych tematów na studiach, a prezentacje i materiały z mojej uczelni są nie jasne - jeszcze będę iść na konsultacje i zobaczę ale i tak wolałbym może obejrzeć jak ktoś to lepiej lub w inny sposób tłumaczy :)</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/558524/zlozonosc-obliczeniowa-i-poprawnosc-programu-gdzie-sie-uczyc</guid>
<pubDate>Sun, 09 Jan 2022 08:44:37 +0000</pubDate>
</item>
<item>
<title>Złożoność algorytmów</title>
<link>https://forum.pasja-informatyki.pl/543790/zlozonosc-algorytmow</link>
<description>Ile razy przeciętnie algorytm sortowania przez wybieranie jest szybszy niż algorytm sortowania bąbelkowego dla zbioru złożonego z 256 elementów?&lt;br /&gt;
&lt;br /&gt;
Policzyłem to zadanie i wyszło mi 2. Czy to poprawna odpowiedź?</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/543790/zlozonosc-algorytmow</guid>
<pubDate>Mon, 14 Jun 2021 16:55:55 +0000</pubDate>
</item>
<item>
<title>Złożoność czasowa algorytmu - Matura próbna 2020</title>
<link>https://forum.pasja-informatyki.pl/524091/zlozonosc-czasowa-algorytmu-matura-probna-2020</link>
<description>Witam,&lt;br /&gt;
&lt;br /&gt;
Podczas przeglądania arkuszy maturalnych z informatyki natknąłem się na zadanie polegające na określeniu rodzaju złożoności czasowej algorytmu podanego w zadaniu. Stąd pytanie: na jakiej podstawie wyznacza się ów rodzaj? Odpowiedź to sześcienna, kwadratowa, liniowa lub logarytmiczna. Ze źródeł dostępnych w internecie wynikają jakieś wzory, których nie rozumiem, więc proszę o pomoc wszystkich mających wiedzę na ten temat.&lt;br /&gt;
&lt;br /&gt;
Problem wystąpił przy robieniu zadania 1.3 z matury próbnej z informatyki, kwiecień 2020.&lt;br /&gt;
&lt;br /&gt;
Pozdrawiam.</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/524091/zlozonosc-czasowa-algorytmu-matura-probna-2020</guid>
<pubDate>Thu, 07 Jan 2021 13:05:15 +0000</pubDate>
</item>
<item>
<title>Algorytmy i Struktury danych</title>
<link>https://forum.pasja-informatyki.pl/516857/algorytmy-i-struktury-danych</link>
<description>

&lt;p&gt;Czy można ograniczyć duże O (ograniczenie górne) Omegą (ograniczenie dolne) inną niż Omega(1)?&amp;nbsp;Pytałam się dwóch ćwiczeniowców i jeden mówi ze odpowiedz błędna a drugi że wszystko się zgadza. (Chodzi o pierwsza odpowiedz z Omegą) lepsza jakość - Screen zadania: &lt;a href=&quot;https://imgur.com/a/ssboyXh&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://imgur.com/a/ssboyXh&lt;/a&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=16810565523676754822&quot; style=&quot;height:299px; width:600px&quot;&gt;
&lt;br&gt;
Skoro we wszystkich sytuacjach nasze W posiada górne ograniczenie W(Alg, n) = &lt;strong&gt;O&lt;/strong&gt; (...) to wydawało mi się że jedyne czym możemy ograniczyć duże &lt;strong&gt;O&lt;/strong&gt; z dołu jest&amp;nbsp;&lt;strong&gt;Ω(1).&lt;/strong&gt;&lt;/p&gt;</description>
<category>Matematyka, fizyka, logika</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/516857/algorytmy-i-struktury-danych</guid>
<pubDate>Mon, 16 Nov 2020 23:27:23 +0000</pubDate>
</item>
<item>
<title>Złożoność czasowa algorytmu</title>
<link>https://forum.pasja-informatyki.pl/514599/zlozonosc-czasowa-algorytmu</link>
<description>

&lt;p&gt;Witam
&lt;br&gt;
Potrzebuje pomocy w obliczeniu średniej złożoności Algorytmu.
&lt;br&gt;
Mamy Algorytm1() o Średniej złożoności&lt;strong&gt; A(n) =&amp;nbsp;Θ(n^(1/2))&lt;/strong&gt;, oraz poniższy pseudo kod:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
Algorytm( int n ){
   for(i=0; i&amp;lt;lg(n); i++){
      Algorytm1(i)
   }
}&lt;/pre&gt;



&lt;p&gt;Zastanawiam się&amp;nbsp;czy&amp;nbsp;tym przypadku &quot;i&quot; można&amp;nbsp;potraktować jako stałą &lt;strong&gt;c&lt;/strong&gt; gdzie &lt;strong&gt;A(n) = lg(n) *&amp;nbsp;Θ(c^(1/2)) =&amp;nbsp;&amp;nbsp;Θ(lg(n)),&amp;nbsp;&lt;/strong&gt;czy jednak takie podejście jest błędne?
&lt;br&gt;
Z góry dziękuje
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;</description>
<category>Matematyka, fizyka, logika</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/514599/zlozonosc-czasowa-algorytmu</guid>
<pubDate>Sun, 01 Nov 2020 19:38:41 +0000</pubDate>
</item>
<item>
<title>Złożoność obliczeniowa algorytmu</title>
<link>https://forum.pasja-informatyki.pl/514573/zlozonosc-obliczeniowa-algorytmu</link>
<description>

&lt;p&gt;Witam, mam do obliczenia złożoność obliczeniową następującego algorytmu:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &quot;List.h&quot;

void menu(void);

int main(void)
{
    List *lista = list_create();

    int wybor;
    menu();
    while (std::cin &amp;gt;&amp;gt; wybor)
    {
        switch (wybor)
        {
            case 1:
            {
                for (int i = 1; i &amp;lt;= 100; i++)
                    list_push_front(lista, i);

                break;
            }

            case 2:
            {
                if (!list_empty(lista))
                {
                    std::cout &amp;lt;&amp;lt; &quot;\nWARTOSCI\n&quot;;
                    for (Node *i = lista-&amp;gt;head; i != NULL; i = i-&amp;gt;next)
                        std::cout &amp;lt;&amp;lt; i-&amp;gt;data &amp;lt;&amp;lt; &quot; &quot;;

                    std::cout.put('\n');
                }
                else
                    std::cout &amp;lt;&amp;lt; &quot;\nWypelnij liste!\n&quot;;

                break;
            }

            case 3:
            {
                if (!list_empty(lista))
                {
                    double suma = 0.0;

                    for (Node *i = lista-&amp;gt;head; i != NULL; i = i-&amp;gt;next)
                        suma += i-&amp;gt;data;

                    std::cout &amp;lt;&amp;lt; &quot;\nSrednia z listy to &quot; &amp;lt;&amp;lt; suma / lista-&amp;gt;size &amp;lt;&amp;lt; std::endl;
                }
                else
                    std::cout &amp;lt;&amp;lt; &quot;\nWypelnij liste!\n&quot;;

                break;
            }
            
            case 4:
            {
                if (!list_empty(lista))
                {
                    for (Node *i = lista-&amp;gt;head; i != NULL; i = i-&amp;gt;next)
                    {
                        /*
                            Jeśli element jest nieparzysty, usunie go.
                            Następnie przypisze do i element poprzedni
                            do usuniętego lub następny do usuniętego,
                            jeżeli jest różny od NULL.
                        */
                        if (i-&amp;gt;data % 2 == 1)
                            i = list_pop(lista, i);
                    }
                }
                else
                    std::cout &amp;lt;&amp;lt; &quot;\nWypelnij liste!\n&quot;;

                break;
            }

            default: 
            {
                std::cout &amp;lt;&amp;lt; &quot;Niepoprawna opcja!\n&quot;;
                break;
            }
        }

        std::cout.put('\n');
        menu();
    }

    list_free(&amp;amp;lista);

    return 0;
}

void menu(void)
{
    std::cout &amp;lt;&amp;lt; &quot;1. Wypelnij liste wartosciami 1...100\n&quot;;
    std::cout &amp;lt;&amp;lt; &quot;2. Wyswietl liste\n&quot;;
    std::cout &amp;lt;&amp;lt; &quot;3. Oblicz srednia i ja wyswietl\n&quot;;
    std::cout &amp;lt;&amp;lt; &quot;4. Usun wartosci nieparzyste\n&quot;;
    std::cout &amp;lt;&amp;lt; &quot;Twoj wybor (wartosc nieliczbowa konczy): &quot;;
}
&lt;/pre&gt;



&lt;p&gt;Według mnie będzie to stała klasa złożoności obliczeniowej O(1), ponieważ pierwsza opcja wykona się zawsze 100 razy, druga też 100 razy, trzecia również, czwarta 51 razy ze względu na moją implementacje funkcji list_pop. Czy dobrze rozumuje?&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/514573/zlozonosc-obliczeniowa-algorytmu</guid>
<pubDate>Sun, 01 Nov 2020 17:06:22 +0000</pubDate>
</item>
<item>
<title>Złożoności algorytmów</title>
<link>https://forum.pasja-informatyki.pl/496531/zlozonosci-algorytmow</link>
<description>Czy wyjaśniłby ktoś lub podesłał jakąś lekturę jak na podstawie funkcji obliczyć złożoność algorytmu &lt;br /&gt;
&lt;br /&gt;
np e^(1/x) ; 1/x ; 2 + sinx itp</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/496531/zlozonosci-algorytmow</guid>
<pubDate>Mon, 29 Jun 2020 17:40:52 +0000</pubDate>
</item>
<item>
<title>Problemy algorytmiczne należące do klasy P.</title>
<link>https://forum.pasja-informatyki.pl/495018/problemy-algorytmiczne-nalezace-do-klasy-p</link>
<description>Witam,&lt;br /&gt;
&lt;br /&gt;
Mam takie pytanie: skoro problemy algorytmiczne należące do klasy P można rozwiązać za pomocą algorytmów o złożoności wielomianowej, to czy w grę wchodzi taka złożoność O(n) ? Wiem, że przedstawia się ją jako liniową, ale słyszałem, że jest szczególnym przypadkiem złożoności wielomianowej. Czy ktoś mógłby mi to troszkę bardziej przybliżyć? Z góry dziękuję za odpowiedz.</description>
<category>Matematyka, fizyka, logika</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/495018/problemy-algorytmiczne-nalezace-do-klasy-p</guid>
<pubDate>Fri, 19 Jun 2020 19:09:06 +0000</pubDate>
</item>
<item>
<title>Zadanie - czasowa złożoność.</title>
<link>https://forum.pasja-informatyki.pl/489994/zadanie-czasowa-zlozonosc</link>
<description>Ktoś mógłby pomóc z rozwiązaniem ego zadania?&lt;br /&gt;
&lt;br /&gt;
Wyznacz czasową złożoność obliczeniową oraz klasę czasowej złożoności obliczeniowej dla następującego&lt;br /&gt;
&lt;br /&gt;
algorytmu.&lt;br /&gt;
Wejście:&lt;br /&gt;
n - ilość liczb w tablicy&lt;br /&gt;
T[] - tablica zawierająca n liczb&lt;br /&gt;
Wyjście:&lt;br /&gt;
s - wynik pracy algorytmu&lt;br /&gt;
Dane pomocnicze:&lt;br /&gt;
i,j - indeksy elementów&lt;br /&gt;
Krok 1: s=0&lt;br /&gt;
Krok 2: i=0&lt;br /&gt;
Krok 3: Jeśli j=n-0, to zakończ&lt;br /&gt;
Krok 4: j=0&lt;br /&gt;
Krok 5: Jeśli j=10, to idź do kroku 9&lt;br /&gt;
Krok 6: s=s+T[i+j]&lt;br /&gt;
Krok 7: j=j+1&lt;br /&gt;
Krok 8: Idź do kroku 5&lt;br /&gt;
Krok 9: i=i+1&lt;br /&gt;
Krok 10: Idź do kroku 3</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/489994/zadanie-czasowa-zlozonosc</guid>
<pubDate>Thu, 21 May 2020 21:16:25 +0000</pubDate>
</item>
<item>
<title>Złożoność obliczeniowa  algorytmu</title>
<link>https://forum.pasja-informatyki.pl/484393/zlozonosc-obliczeniowa-algorytmu</link>
<description>

&lt;p&gt;Cześć, robię sprawozdanie w którym musi znaleźć się ocena złożoności obliczeniowej tego algorytmu. Nie jestem pewien, czy dobrze&amp;nbsp;liczę, ale wyszło mi:&lt;/p&gt;



&lt;p style=&quot;text-align:center&quot;&gt;4*n+2&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;stdio.h&amp;gt;

void hanoi(char From, char To, char Other, int n)
{
    if (n == 0) return;
    hanoi(From, Other, To, n-1);
    printf(&quot;Przesuwanie dysku z kolka %c do %c\n&quot;, From, To);
    hanoi(Other, To, From, n-1);
}
int main()
{
    int n = 4;                      
    hanoi('A','B','C', n);
    return 0;
}
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/484393/zlozonosc-obliczeniowa-algorytmu</guid>
<pubDate>Sat, 25 Apr 2020 18:31:49 +0000</pubDate>
</item>
<item>
<title>Złożoność algorytmu z prawdopodobieństwem</title>
<link>https://forum.pasja-informatyki.pl/483408/zlozonosc-algorytmu-z-prawdopodobienstwem</link>
<description>

&lt;p&gt;Cześć.
&lt;br&gt;
Dzięki za naprowadzenie z poprzednim problemem, jednakże znów muszę prosić o pomoc w innym zadaniu. Nie proszę o rozwiązanie, a raczej o jakieś wskazówki. Potrzebuję pomocy z obliczeniem złożoności algorytmu z zmienną losową. Doszedłem do tego, jak można zobrazować problem za pomocą grafu lecz nic poza tym. W wierzchołkach znajdują się wartości, natomiast krawędzie symbolizują prawdopodobieństwo z jakim może zostać wybrany następny wierzchołek:&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=2021204542706229389&quot; style=&quot;height:514px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;Problem pojawia się, ponieważ istnieje prawdopodobieństwo, że algorytm &quot;cofnie&quot; się o 1, gdyby tego nie było, obliczenie złożoności obliczeniowej tego algorytmu byłoby w miarę proste. Nie pytam też o odpowiedź, a raczej o jakieś wskazówki jak do niej dojść.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Edit: myślałem też, zeby przedstawić to jako przeszukiwanie stringa i znajdowanie podciągu w którym będzie o n więcej 1 niż 0. Tylko to też niezbyt mi pomaga.&amp;nbsp;&lt;/p&gt;</description>
<category>Matematyka, fizyka, logika</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/483408/zlozonosc-algorytmu-z-prawdopodobienstwem</guid>
<pubDate>Mon, 20 Apr 2020 15:57:57 +0000</pubDate>
</item>
<item>
<title>Złożoność czasowa a wyrażenia listowe [Python]</title>
<link>https://forum.pasja-informatyki.pl/478549/zlozonosc-czasowa-a-wyrazenia-listowe-python</link>
<description>

&lt;p&gt;Czy wyrażenie listowe jest liczone jako jedno działanie (jak np. dodawanie) czy jako pętla, jaka jest złożoność czasowa wyrażenia listowego?&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
for n in lista:
    z = [str(n) for n in lista]&lt;/pre&gt;



&lt;p&gt;Złożoność czasowa tego algorytmu wynosi O(n) czy O(n^^2)?&lt;/p&gt;



&lt;p&gt;Dziękuje za pomoc :)&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/478549/zlozonosc-czasowa-a-wyrazenia-listowe-python</guid>
<pubDate>Fri, 27 Mar 2020 11:53:50 +0000</pubDate>
</item>
<item>
<title>Co to jest dokładnie ta złożoność obliczeniowa?</title>
<link>https://forum.pasja-informatyki.pl/466661/co-to-jest-dokladnie-ta-zlozonosc-obliczeniowa</link>
<description>Wszędzie mówi się o złożoności obliczeniowej, że jest pesymistyczna, oczekiwana oraz optymistyczna, ale co to dokładnie jest? Służy do oceny algorytmów, ale co to formalnie jest? Jak to wyjaśnić?</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/466661/co-to-jest-dokladnie-ta-zlozonosc-obliczeniowa</guid>
<pubDate>Sat, 11 Jan 2020 10:02:39 +0000</pubDate>
</item>
<item>
<title>Złożoność obliczeniowa algorytmów</title>
<link>https://forum.pasja-informatyki.pl/461521/zlozonosc-obliczeniowa-algorytmow</link>
<description>

&lt;p&gt;Cześć,&lt;/p&gt;



&lt;p&gt;Potrzebuję zapisać złożoność obliczeniową trzech różnych algorytmów:&lt;/p&gt;



&lt;pre class=&quot;brush:php;&quot;&gt;
function znajdzNajw($tab, $comment){
    $max1 = $tab[0];
    $max2 = $tab[1];
    
    for($i = 2; $i &amp;lt; count($tab); $i++){
        $max1 &amp;gt;= $max2 ? ($tab[$i] &amp;gt; $max2 ? $max2 = $tab[$i] : $max2 = $max2) : ($tab[$i] &amp;gt; $max1 ? $max1 = $tab[$i] : $max1 = $max1);
    }
    
    $najw = array($max1, $max2);
    return wyswietlPare($najw, $comment);
}

function znajdzNajm($tab, $comment){
    $min1 = $tab[0];
    $min2 = $tab[1];
    
    for($i = 2; $i &amp;lt; count($tab); $i++){
        $min1 &amp;gt; $min2 ? ($min1 &amp;gt; $tab[$i] ? $min1 = $tab[$i] : $min1 = $min1) : ($min2 &amp;gt; $tab[$i] ? $min2 = $tab[$i] : $min2 = $min2);
    }
    
    $najm = array($min1, $min2);
    return wyswietlPare($najm, $comment); 
}

function sortujTab($tab){
    
    for($i = 0; $i &amp;lt; count($tab); $i++){
        for($j = 0; $j &amp;lt; count($tab) - 1; $j++){
            if($tab[$j] &amp;gt; $tab[$j + 1]){
                $tmp = $tab[$j + 1];
                $tab[$j + 1] = $tab[$j];
                $tab[$j] = $tmp;
            }
        }
    }
    
    return $tab;
}

&lt;/pre&gt;



&lt;p&gt;Czy złożonością obliczeniową dla funkcji:&lt;/p&gt;



&lt;p&gt;znajdzNajw i&amp;nbsp;znajdzNajm to O(N)&lt;/p&gt;



&lt;p&gt;sortujTab to O(N^2)&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/461521/zlozonosc-obliczeniowa-algorytmow</guid>
<pubDate>Thu, 05 Dec 2019 11:42:46 +0000</pubDate>
</item>
<item>
<title>Ile zajmie komputerowi mnożenie liczb rzędu 2^128</title>
<link>https://forum.pasja-informatyki.pl/461115/ile-zajmie-komputerowi-mnozenie-liczb-rzedu-2-128</link>
<description>Weźmy liczbę 2^128-1 i pomnóżmy ją razy 1,5 oraz dodajmy 0,5. Powtórzmy operację 128 razy. Ile zajmie komputerowi obliczenie końcowej liczby? Zaznaczę tylko, że nie chodzi mi o matematyczne rozwiązanie, bo wiem, że będzie to 3^128-1. Chcę wiedzieć ile zajmują operacje na tak dużych liczbach i czy są to jakieś rozsądne czasy.</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/461115/ile-zajmie-komputerowi-mnozenie-liczb-rzedu-2-128</guid>
<pubDate>Mon, 02 Dec 2019 20:37:34 +0000</pubDate>
</item>
<item>
<title>Złożoność algorytmów</title>
<link>https://forum.pasja-informatyki.pl/425602/zlozonosc-algorytmow</link>
<description>

&lt;p&gt;Cześć, mam problem z podaniem funkcji złożoności obliczeniowej do następującego programu :&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
for(int i=1; i&amp;lt;=n; i++){
 int j=n;
 while(j&amp;gt;=1){
 j= j/2;
 }
}
&lt;/pre&gt;



&lt;p&gt;Mniej więcej wiem jak to robić tylko mam problem z funkcją wew.&lt;/p&gt;



&lt;p&gt;Jeśli byłby ktoś wstanie dać jakąś wskazówkę i to wytłumaczyć byłbym wdzięczny :)&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/425602/zlozonosc-algorytmow</guid>
<pubDate>Sun, 14 Apr 2019 18:23:42 +0000</pubDate>
</item>
<item>
<title>Radosna nowina - mnożenie liczb całkowitych przechodzi na wyższy poziom</title>
<link>https://forum.pasja-informatyki.pl/422150/radosna-nowina-mnozenie-liczb-calkowitych-przechodzi-na-wyzszy-poziom</link>
<description>Dzień dobry, ja tu tylko zostawiam nowo opublikowany PDF zawierający nowy algorytm mnożenie integerów w czasie &lt;br /&gt;
&lt;br /&gt;
O(n*log(n)). &lt;br /&gt;
&lt;br /&gt;
Gratuluję odkrywcom!!!</description>
<category>Offtop</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/422150/radosna-nowina-mnozenie-liczb-calkowitych-przechodzi-na-wyzszy-poziom</guid>
<pubDate>Wed, 27 Mar 2019 16:24:56 +0000</pubDate>
</item>
<item>
<title>Jak obliczyć złożoność mojego algorytmu?</title>
<link>https://forum.pasja-informatyki.pl/412474/jak-obliczyc-zlozonosc-mojego-algorytmu</link>
<description>

&lt;p&gt;&lt;strong&gt;Hej mam problem z napisaniem złożoności czasowej do podanego algorytmu. Mógłbym ktoś pomóc :).&lt;/strong&gt;&lt;/p&gt;



&lt;pre&gt;
function result=palindrome(TAB)   
    K=length(TAB)   
    I=floor(K/2)+1
    L=1
    J=1
    result='JEDNA Z POŁÓWEK TABLICY NIE JEST PALINDROMEM.'
    
    if modulo(K,2) == 1 then
        I = I + 1
    end
    
    firstPart = slice(TAB,L,floor(K/2))
    secondPart = slice(TAB,I,K)
    
    if checkIsPalindrome(firstPart) == 1 then
        if checkIsPalindrome(secondPart) == 1 then
             result='OBIE POŁÓWKI SĄ PALINDROMAMI!'
        end
    end
endfunction

function TAB=slice(TAB, startindex, endindex)
      TAB = TAB(startindex:endindex)
endfunction

function result=checkIsPalindrome(TAB)
    result = 0 
    i = 1;
    n = length(TAB) 
    while i*2&amp;lt;n do

        if TAB(i) == TAB((n-i)+1) then
            i = i + 1
        else
            return;
        end
    end    
    result = 1
endfunction&lt;/pre&gt;</description>
<category>Matematyka, fizyka, logika</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/412474/jak-obliczyc-zlozonosc-mojego-algorytmu</guid>
<pubDate>Thu, 07 Feb 2019 20:17:09 +0000</pubDate>
</item>
<item>
<title>Złożoność algorytmu</title>
<link>https://forum.pasja-informatyki.pl/397848/zlozonosc-algorytmu</link>
<description>Mam za zadanie udowodnić, że f(n)= n(n+1)/2 jest O(n^2).&lt;br /&gt;
Czy zapisanie: f(x)=n(n+1) =&amp;gt; f(x)=n*(n) =&amp;gt; f(x) = n^2 =&amp;gt; O(n^2), jest poprawne i wystarczy?</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/397848/zlozonosc-algorytmu</guid>
<pubDate>Mon, 03 Dec 2018 13:33:42 +0000</pubDate>
</item>
<item>
<title>Złożoność algorytmów (notacja asymptotyczna)</title>
<link>https://forum.pasja-informatyki.pl/391313/zlozonosc-algorytmow-notacja-asymptotyczna</link>
<description>Chciałbym zapytać konkretnie o coś ale problem jest taki, że nie pomimo przeczytania połowy internetu dalej nie mam pojęcia o co w tym chodzi. Język tych prac jest dla mnie niezrozumiały :T Wytłumaczy ktoś o co chodzi w notacji asymptotycznej i złożoności algorytmów na &amp;quot;chłopski rozum&amp;quot;?</description>
<category>Matematyka, fizyka, logika</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/391313/zlozonosc-algorytmow-notacja-asymptotyczna</guid>
<pubDate>Mon, 05 Nov 2018 21:25:57 +0000</pubDate>
</item>
<item>
<title>Zadanie. Złożoność</title>
<link>https://forum.pasja-informatyki.pl/380951/zadanie-zlozonosc</link>
<description>Ile czasu zajmie wykonanie zadania dla danych wejściowych rozmiaru 8 algorytmem A o złożoności n^3, wiedząc że wykonanie zadania o rozmiarze 16 zajmuje(przy użyciu tego samego algorytmu) 2^11 jednostek czasu.</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/380951/zadanie-zlozonosc</guid>
<pubDate>Tue, 18 Sep 2018 14:45:47 +0000</pubDate>
</item>
<item>
<title>zlozonosc algorytmu - jak obliczyc</title>
<link>https://forum.pasja-informatyki.pl/378069/zlozonosc-algorytmu-jak-obliczyc</link>
<description>

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://i.imgur.com/MNctdSt.png&quot; style=&quot;height:231px; width:650px&quot;&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Witam, jak wykonać takie zadanie, jak obliczyć te zlozonosc?&lt;/p&gt;</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/378069/zlozonosc-algorytmu-jak-obliczyc</guid>
<pubDate>Wed, 05 Sep 2018 17:00:54 +0000</pubDate>
</item>
<item>
<title>Zadanie OIG - Kafelki</title>
<link>https://forum.pasja-informatyki.pl/368671/zadanie-oig-kafelki</link>
<description>

&lt;p&gt;Hej!&lt;/p&gt;



&lt;p&gt;Rozwiązywałem ostatnio&amp;nbsp;zadanie&amp;nbsp;pt. Kafelki z ubiegłorocznej edycji Olimpiady informatycznej gimnazjalistów&lt;/p&gt;



&lt;p&gt;Treść zadania:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
Piotrek jest nowym administratorem systemu Olimpiady Informatycznej 
Gimnazjalistów. Jednym z jego obo- wiązków jest opieka nad serwerownią. 
Pomieszczenie musi spełnić szereg kryteriów zarówno technicznych, jak i 
estetycznych. Aby zapewnić poprawne działanie serwerów, ważne jest, aby podłoga 
została pokryta no- woczesnymi kafelkami chłodzącymi.
Piotrek może wybrać jeden z n rodzajów kwadratowych kafelków. Zakładamy, że 
kafelków danego rodza- ju można kupić dowolnie wiele, ale nie wolno w jakikolwiek 
sposób zmieniać ich wymiarów. Piotrek musi rozpatrzyć wszystkie rodzaje kafelków, 
którymi da się całkowicie wyłożyć podłogę i zdecydować, które kupi. Niestety, 
nigdy nie był w serwerowni, i nie wie, jakie ma ona wymiary. Pomóż młodemu 
administratorowi i napisz program, który dla zadanych wymiarów podłogi w 
serwerowni wyliczy, ile różnych rodzajów kafelków może użyć.&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Wejście:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
W pierwszym wierszu standardowego wejścia zapisano dwie liczby naturalne n i m 
(1 &amp;lt;= n, m &amp;lt;= 200 000), oznaczające odpowiednio liczbę rodzajów kafelków i liczbę 
zapytań o wymiary serwerowni. W drugim wierszu zapisano n liczb naturalnych xi 
(1 &amp;lt;= xi &amp;lt;= 106), oznaczających długość boku i-tego rodzaju kafelków. 
W ko-lejnych m&amp;nbsp;wierszach zapisano po jednej parze liczb naturalnych ai, bi (1 &amp;lt;= ai, bi &amp;lt;= 106),
oznaczających zadane wymiary. W testach wartych 50% punktów możesz założyć,
&amp;nbsp;że podłoga serwerowni jest zawsze kwadratem (ai = bi).
&lt;/pre&gt;



&lt;p&gt;Wyjście:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
W i-tym wierszu wyjścia powinna znaleźć się jedna liczba naturalna, oznaczająca 
liczbę różnych rodzajów kafelków, którymi można wyłożyć podłogę o wymiarach 
zadanych w i-tym zapytaniu.
&lt;/pre&gt;



&lt;p&gt;Najprostsze rozwiązanie problemu to po prostu sprawdzenie czy dany rozmiar pokoju jest podziely bez reszty przez i-ty kafelek, ale będzie to rozwiązanie o złożoności m * n =&amp;gt; ok. O(n^2), więc w tego typu konkursie nie byłoby to zbyt wysoko punktowane.&lt;/p&gt;



&lt;p&gt;Wymyśliłem, że można by to zoptymalizować w taki sposób, że tablicę z wartościami kafelków sortujemy rosnąco quicksortem, i sprawdzamy czy NWD wymiarów pokoju jest podzielny przez i-ty kafelek iterując do czasu aż i-ty kafelek jest mniejszy bądź równy NWD wymiarów pokoju. Jest jednak pewien problem. Mianowicie przy najbardiej pesymistycznym założeniu (czyli takim, że wszystkie kafelki będą mniejsze od NWD każdego pokoju) ten algorytm będzie jeszcze mniej wydajny niż najprostszy o którym wspomniałem wyżej.&lt;/p&gt;



&lt;p&gt;Moje pytanie jest następujące - czy w takim przypadku warto &quot;zaryzykować&quot;, że zestawy danych będą w miarę optymistyczne i algorytm będzie działał znacząco szybciej niż O(n^2)? Dzięki za pomoc ;)&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/368671/zadanie-oig-kafelki</guid>
<pubDate>Wed, 25 Jul 2018 23:29:23 +0000</pubDate>
</item>
<item>
<title>Złożoność O(log n)</title>
<link>https://forum.pasja-informatyki.pl/362288/zlozonosc-o-log-n</link>
<description>Witam, mam pytanie jak sprawdzić czy jakieś złożoności są równe złożoności O(log n) ? Generalnie wiem, że relacji f(x)=O(g(x)), trzeba znaleźć takie c, żeby dla dowolnego n&amp;gt;=n0 zachodziło f(x)&amp;lt;=c*g(x), tylko że nie potrafię rozpisać tego dla przypadków kiedy sprawdzam takie równanie z logarytmem... Gdyby ktoś mógł rozpisać mi jak to sie dokładnie liczy np. dla n^(1/2) = O(log n) ?</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/362288/zlozonosc-o-log-n</guid>
<pubDate>Sat, 30 Jun 2018 23:43:51 +0000</pubDate>
</item>
<item>
<title>Uporządkowanie funkcji od najmniej złożonej do najbardziej złożonej</title>
<link>https://forum.pasja-informatyki.pl/360605/uporzadkowanie-funkcji-od-najmniej-zlozonej-do-najbardziej-zlozonej</link>
<description>Mam 5 funkcji, którę muszę uporządkowac w kolejności od najmniej złożonej do najbardziej złożonej:&lt;br /&gt;
&lt;br /&gt;
f1=O(n^(3n))&lt;br /&gt;
&lt;br /&gt;
f2=O(1)&lt;br /&gt;
&lt;br /&gt;
f3=O(n lg n)&lt;br /&gt;
&lt;br /&gt;
f4=O(n^4)&lt;br /&gt;
&lt;br /&gt;
f5=O(n^(2.45))&lt;br /&gt;
&lt;br /&gt;
Ja posegregowałem tak:&lt;br /&gt;
&lt;br /&gt;
f2,f4,f5,f1,f3&lt;br /&gt;
&lt;br /&gt;
Ale widziałem inne rozwiązanie z inną kolejnością i nie jestem pewien czy dobrze rozwiązałem.&lt;br /&gt;
&lt;br /&gt;
Za n podstawiam przykładową wartość, np. 3&lt;br /&gt;
&lt;br /&gt;
Podajcie proszę swoje typy. Czy moje rozwiązanie jest prawidłowe?</description>
<category>Matematyka, fizyka, logika</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/360605/uporzadkowanie-funkcji-od-najmniej-zlozonej-do-najbardziej-zlozonej</guid>
<pubDate>Sun, 24 Jun 2018 22:29:43 +0000</pubDate>
</item>
<item>
<title>Złożoność pamięciowa algorytmu C#</title>
<link>https://forum.pasja-informatyki.pl/355404/zlozonosc-pamieciowa-algorytmu-c%23</link>
<description>Jak mogę zbadać złożoność pamięciową algorytmu? Czy istnieje jakaś klasa w C#, która będzie badać (sprawdzać) ilość wykorzystanej pamięci RAM, podczas działania algorytmu?:)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Z góry dziękuję</description>
<category>C#</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/355404/zlozonosc-pamieciowa-algorytmu-c%23</guid>
<pubDate>Mon, 04 Jun 2018 10:02:05 +0000</pubDate>
</item>
<item>
<title>Najszybszy algorytm odnajdujący liczby pierwsze (Złożoność czasowa log(n))</title>
<link>https://forum.pasja-informatyki.pl/343565/najszybszy-algorytm-odnajdujacy-liczby-pierwsze-zlozonosc-czasowa-log-n</link>
<description>Witam, mam pytanie! Jaki algorytm do odnajdywania liczb pierwszych do przedziału określonego wartością n można użyć w swoim kodzie? Widziałem Sito Eratostenesa, Sito Atkina, ale nie jestem pewien czy nie ma aby szybszego algorytmu na to. Czytałem, że najszybszą możliwą złożonością czasową jest log(n), czy istnieje taki algorytm odnajdywania liczb pierwszych?</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/343565/najszybszy-algorytm-odnajdujacy-liczby-pierwsze-zlozonosc-czasowa-log-n</guid>
<pubDate>Sun, 15 Apr 2018 16:25:11 +0000</pubDate>
</item>
<item>
<title>Metody oceniania złożoności obliczeniowej algorytmów</title>
<link>https://forum.pasja-informatyki.pl/334629/metody-oceniania-zlozonosci-obliczeniowej-algorytmow</link>
<description>Witam, jakie są najpopularniejsze metody oceniania złożoności obliczeniowej algorytmów? Wiem, że jest jest metoda polegająca na badaniu jak zwiększają się zasoby potrzebne do wykonania algorytmu wraz ze wzrostem rozmiaru danych wejściowych.&lt;br /&gt;
&lt;br /&gt;
Jeśli są jakieś jeszcze to proszę o wyjaśnienie &lt;br /&gt;
&lt;br /&gt;
dzięki</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/334629/metody-oceniania-zlozonosci-obliczeniowej-algorytmow</guid>
<pubDate>Wed, 14 Mar 2018 17:03:18 +0000</pubDate>
</item>
<item>
<title>Złożoność Algorytmów</title>
<link>https://forum.pasja-informatyki.pl/323277/zlozonosc-algorytmow</link>
<description>Witam,&lt;br /&gt;
&lt;br /&gt;
Często w pytaniach ABCD pojawiają się pytania o złożoność algorytmu. Przeważnie wygląda to tak, że jest podany kod i my mamy podać jaka jest złożoność algorytmu np O(n^2), O(Logn).&lt;br /&gt;
&lt;br /&gt;
I teraz rodzi się pytanie jak mogę oszacować, złożoność, za pomocą kartki + długopisu w krótkim (przeważnie 1 minutowym) czasie? Ma ktoś radę jak to robić?&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Pozdrawiam</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/323277/zlozonosc-algorytmow</guid>
<pubDate>Thu, 01 Feb 2018 17:43:41 +0000</pubDate>
</item>
<item>
<title>Badanie czy liczba jest liczba pierwsza - złożoność</title>
<link>https://forum.pasja-informatyki.pl/316954/badanie-czy-liczba-jest-liczba-pierwsza-zlozonosc</link>
<description>Witam,&lt;br /&gt;
Witam czy można określić złożoność algorytmu sprawdzającego czy liczba jest liczba pierwsza? np. podobnego do tego tutaj:&lt;br /&gt;
&lt;a href=&quot;http://www.algorytm.edu.pl/algorytmy-maturalne/badanie-czy-liczba-pierwsza.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.algorytm.edu.pl/algorytmy-maturalne/badanie-czy-liczba-pierwsza.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Pobieramy jedną liczbę, sprawdzamy do sqrt tej liczby. Jak wyznaczyć złożoność, dwa scenariusze? Mógłby ktoś pomóc?</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/316954/badanie-czy-liczba-jest-liczba-pierwsza-zlozonosc</guid>
<pubDate>Mon, 08 Jan 2018 18:08:25 +0000</pubDate>
</item>
<item>
<title>Złożoność algorytmów</title>
<link>https://forum.pasja-informatyki.pl/309233/zlozonosc-algorytmow</link>
<description>

&lt;p&gt;Witam, mam zadanie:&lt;/p&gt;



&lt;p&gt;Klasy złozonosci czasowej, w których funkcje s ̨a wył ̨acznie asymptotyczne:&lt;/p&gt;



&lt;p&gt;Poszukaj w literaturze oraz podaj wyjaśnienie:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;klasy EXP oraz&lt;/li&gt;
	

&lt;li&gt;klasy NEXP&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;mam podane tylko to:&lt;/p&gt;



&lt;p&gt;EX P&lt;/p&gt;



&lt;p&gt;– deterministyczny czas wykładniczy,&lt;/p&gt;



&lt;p&gt;NEX P&lt;/p&gt;



&lt;p&gt;– niedeterministyczny czas wykładniczy.&lt;/p&gt;



&lt;p&gt;, niestety nie mogę nic znaleźć, czy mógłby ktos pomoc?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/309233/zlozonosc-algorytmow</guid>
<pubDate>Wed, 06 Dec 2017 20:18:25 +0000</pubDate>
</item>
<item>
<title>złożoność czasowa i pamięciowa algorytmu inOrder (chyba inaczej sortowanie Stogowe) w drzewie poszukiwań binarnych</title>
<link>https://forum.pasja-informatyki.pl/279942/zlozonosc-czasowa-pamieciowa-algorytmu-inorder-sortowanie-poszukiwan-binarnych</link>
<description>

&lt;p&gt;hej, ostatnio natknąłem się na bardzo ciekawy algorytm sortowania wykorzystujący drzewo binarne - *a nie kopiec* (nigdy o nim nie słyszałem w kursie Pana Mirosława ani na żadnych stronach) ,mowa tu o inOrder (przynajmniej ja tak to nazwałem :D) . Nie mogłem znaleźć na temat tego algorytmu więcej informacji ,nie wiem czemu bo dla mnie jest bardzo ciekawy (może nawet lepszy od Heap sort którego niezbyt lubię)&amp;nbsp; . By uniknąć problemów podam cały kod sortowania oraz moją implementacje całego drzewa binarnego - co o niej sądzicie co mogę poprawić ? . Z góry dziękuje za odpowiedzi i komentarze oraz pozdrawiam :)&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;oto kod samego inOrder:&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
void inOrder(DataTrees *parent) { //sosrtowaanioe
	if (parent) {
		inOrder(parent-&amp;gt;leftChild);
		cout &amp;lt;&amp;lt; parent-&amp;gt;data &amp;lt;&amp;lt; &quot; &quot;;
		inOrder(parent-&amp;gt;rightChild);
	}
}&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;Cały program (napisany w VS więc w pliku stdafx mamy biblioteki):&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &quot;stdafx.h&quot;

using namespace std;

struct DataTrees {
	int data;
	DataTrees *leftChild;
	DataTrees *rightChild;
};

void add(DataTrees *&amp;amp;parent, int value) { //wstawaianie elementu 
	if (!parent) { //jezeli jest tu puste mijsce
		parent = new DataTrees;
		parent-&amp;gt;data = value;
		parent-&amp;gt;leftChild = nullptr;
		parent-&amp;gt;rightChild = nullptr;
	}
	else { //pezeszukiwanie 
		if (value &amp;gt;= parent-&amp;gt;data) add(parent-&amp;gt;rightChild, value);
		else add(parent-&amp;gt;leftChild, value);
	}
}

void inOrder(DataTrees *parent) { //sosrtowaanioe
	if (parent) {
		inOrder(parent-&amp;gt;leftChild);
		cout &amp;lt;&amp;lt; parent-&amp;gt;data &amp;lt;&amp;lt; &quot; &quot;;
		inOrder(parent-&amp;gt;rightChild);
	}
}

void find(DataTrees *parent, DataTrees *&amp;amp;element, int value) { //poszukiwanie danej wartosci i ustawianie wskaznika na odpowiedni obiekt 
	if (!parent) { //jezeli nie znaleziono i nie ma juzz wiecej elementow 
		cout &amp;lt;&amp;lt; &quot;error&quot; &amp;lt;&amp;lt; endl;
	}
	else if (parent-&amp;gt;data == value) { //jezeli znaleziono
		element = parent;
		cout &amp;lt;&amp;lt; &quot;is good! &quot; &amp;lt;&amp;lt; endl;
	}
	else { //poszukiwanie binarne 
		if (value &amp;lt; parent-&amp;gt;data) find(parent-&amp;gt;leftChild,element,value);
		else find(parent-&amp;gt;rightChild, element, value);
	}
}

void deleteTree(DataTrees *&amp;amp;element) { //usowanie drzewa 
		if(element)deleteTree(element-&amp;gt;leftChild);
		if(element)deleteTree(element-&amp;gt;rightChild);
		element = nullptr;
}


int main()
{
	DataTrees *root = nullptr;
	DataTrees *element = nullptr;

	while (true) {
		cout &amp;lt;&amp;lt; &quot;---MENU---&quot; &amp;lt;&amp;lt; endl;
		cout &amp;lt;&amp;lt; &quot;1. add&quot; &amp;lt;&amp;lt; endl;
		cout &amp;lt;&amp;lt; &quot;2. inOrder&quot; &amp;lt;&amp;lt; endl;
		cout &amp;lt;&amp;lt; &quot;3. find&quot; &amp;lt;&amp;lt; endl;
		cout &amp;lt;&amp;lt; &quot;4. show find element&quot; &amp;lt;&amp;lt; endl;
		cout &amp;lt;&amp;lt; &quot;5. delete tree&quot; &amp;lt;&amp;lt; endl;
		cout &amp;lt;&amp;lt; &quot;----------&quot; &amp;lt;&amp;lt; endl;

		char z = _getch();

		switch (z) {
		case '1': {
			cout &amp;lt;&amp;lt; &quot;value: &quot;;
			int v; cin &amp;gt;&amp;gt; v;
			add(root, v);
			break;
		}
		case '2': {
			if (root) {
				cout &amp;lt;&amp;lt; &quot;sort: &quot;;
				if(root) inOrder(root);
				else cout &amp;lt;&amp;lt; 0;
			}
			else cout &amp;lt;&amp;lt; 0 &amp;lt;&amp;lt; endl;

			_getch();
			break;
		}
		case '3': {
			cout &amp;lt;&amp;lt; &quot;value: &quot;;
			int v; cin &amp;gt;&amp;gt; v;
			find(root, element, v);
			_getch();
			break;
		}
		case '4': {
			if (element) {
				cout &amp;lt;&amp;lt; &quot;value: &quot; &amp;lt;&amp;lt; element-&amp;gt;data &amp;lt;&amp;lt; endl;
			}
			else cout &amp;lt;&amp;lt; 0 &amp;lt;&amp;lt; endl;
			_getch();
			break;
		}
		case '5': {
			deleteTree(root);
			break;
		}
		}

		system(&quot;cls&quot;);
	}

    return 0;
}

&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/279942/zlozonosc-czasowa-pamieciowa-algorytmu-inorder-sortowanie-poszukiwan-binarnych</guid>
<pubDate>Thu, 24 Aug 2017 12:43:45 +0000</pubDate>
</item>
<item>
<title>Pisanie Algorytmów ,planowanie ,sposoby ...</title>
<link>https://forum.pasja-informatyki.pl/271128/pisanie-algorytmow-planowanie-sposoby</link>
<description>

&lt;p&gt;Hej ,dzisiaj mam takie nietypowe pytanie :) Mianowicie czy wy też tak czasami macie że bierzecie się z pisanie jakiegoś algorytmu ,(może być to sortowanie ,konwersja liczb czy cokolwiek) posiłkując się tylko ogólnym sposobem jego działania . Np ja raz się wziąłem za napisanie programu sortującego liczby przez selekcję ,kombinowałem aż napisałem niestabilny ,zbugowany i bardzo poplątany sposób rozwiązania problemu (praktycznie nie działający (: ) . Kiedy zobaczyłem kod na internecie to się przeraziłem ,pomysł był tak prosty ,elegancki i niesamowicie krótki&amp;nbsp; ze byłem zły na siebie że na to sam nie wpadłem . Czy wy też tak czasami macie że aż was złość bierze że sami nie potrafiliście czegoś napisać mimo iż to było takie proste &lt;img alt=&quot;frown&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/confused_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;frown&quot;&gt; Tu rodzi mi się kolejne pytanie ,w jaki sposób zabrać się za pisanie jakiegoś algorytmu ,czy od razu&amp;nbsp; siąść do kodu i zacząć kombinować ? Czy może wcześniej planować rozwiązanie problemu na algorytmach blokowych itp... Jakie wy macie sprawdzone sposoby podejścia do rozwiązywania problemu ? Będe wdzięczny za wszelkie rady :)&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/271128/pisanie-algorytmow-planowanie-sposoby</guid>
<pubDate>Fri, 21 Jul 2017 09:28:15 +0000</pubDate>
</item>
<item>
<title>Algorytm o złożoności obliczeniowej czasowej O(n*n)</title>
<link>https://forum.pasja-informatyki.pl/263812/algorytm-o-zlozonosci-obliczeniowej-czasowej-o-n-n</link>
<description>Witam, potrzebuje trzech przykładów algorytmów, które mają poszczególne złożoności obliczeniowe czasowe: Algorytm o złożoności obliczeniowej czasowej rzędu O(1). Algorytm o złożoności obliczeniowej czasowej rzędu O(n). Algorytm o złożoności obliczeniowej czasowej rzędu O(n*n). Do każdego algorytmu należy dodać opis analizy jego złożoności. Liczę na Waszą pomoc bo nie wiem jak się do tego w ogóle zabrać &amp;nbsp;:)</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/263812/algorytm-o-zlozonosci-obliczeniowej-czasowej-o-n-n</guid>
<pubDate>Wed, 21 Jun 2017 14:56:43 +0000</pubDate>
</item>
<item>
<title>Uszereguj złożoności obliczeniowe algorytmów.</title>
<link>https://forum.pasja-informatyki.pl/262239/uszereguj-zlozonosci-obliczeniowe-algorytmow</link>
<description>

&lt;p&gt;Czy jest jakiś prosty sposób aby uszeregować złożoności w kolejności powiedzmy malejącej? Słyszałem, że można skorzystać z czegoś takiego :&lt;/p&gt;



&lt;pre&gt;
lim(n-&amp;gt;∞) f(n)/ g(n) = 0  to daje nam Θ(f(n)) &amp;lt; Θ(g(n))
lim(n-&amp;gt;∞) f(n)/ g(n) = c; c &amp;gt; 0 to daje nam  Θ(f(n)) = Θ(g(n))
lim(n-&amp;gt;∞) f(n)/ g(n) = ∞  to daje nam Θ(f(n)) &amp;gt; Θ(g(n))&lt;/pre&gt;



&lt;p&gt;Jednak jest tutaj dużo roboty przy wielu przykładach do uszeregowania. Podam jakiś krótki przykład dla zobrazowania: &amp;nbsp;O(n), O(1), O(n^2), O(loglogn), O(2^n), O1), O(10^logn)&lt;/p&gt;</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/262239/uszereguj-zlozonosci-obliczeniowe-algorytmow</guid>
<pubDate>Wed, 14 Jun 2017 17:54:34 +0000</pubDate>
</item>
<item>
<title>Sortowanie- złożoność czasowa</title>
<link>https://forum.pasja-informatyki.pl/254914/sortowanie-zlozonosc-czasowa</link>
<description>Czy ktoś wykonałby zadanie :&lt;br /&gt;
&lt;br /&gt;
Porównaj czasową złożoność obliczeniową algorytmów: sortowania przez wstawianie i sortowania przez scalanie. Algorytmy mam napisane tylko czas potrzebuję. Za niewielka opłata. Wiecej informacji na priv</description>
<category>Ogłoszenia, zlecenia</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/254914/sortowanie-zlozonosc-czasowa</guid>
<pubDate>Thu, 18 May 2017 23:14:55 +0000</pubDate>
</item>
<item>
<title>złożoność pamięciowa</title>
<link>https://forum.pasja-informatyki.pl/223933/zlozonosc-pamieciowa</link>
<description>Witam :)&lt;br /&gt;
&lt;br /&gt;
Jak liczy się złożoność pamięciową funkcji rekurencyjnej?&lt;br /&gt;
&lt;br /&gt;
Chodzi tu dokładnie o sortowanie przez scalanie, wywoływane z parametrami (int l, int p, int A[max]), ponadto w każdym wykonaniu funkcji tworzona jest tablica pomocnicza B[max], w treści funkcji rekurencyjnie wywoływana jest ona dwa razy plus pojawiają się pętle.&lt;br /&gt;
&lt;br /&gt;
Moja sugestia S(n)=2S(n/2)+o(n), ale nie jestem co do niej przekonana. Jakieś wskazówki?&lt;br /&gt;
&lt;br /&gt;
Licząc złożoność pamięciową, bierze się również pod uwagę parametry, z którymi funkcja została wywołana, prawda?</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/223933/zlozonosc-pamieciowa</guid>
<pubDate>Sun, 05 Feb 2017 18:14:31 +0000</pubDate>
</item>
<item>
<title>Oszacuj złożoność algorytmu.</title>
<link>https://forum.pasja-informatyki.pl/217016/oszacuj-zlozonosc-algorytmu</link>
<description>Cześć, &lt;br /&gt;
&lt;br /&gt;
walczę z tematem &amp;quot;złożoności czasowej algorytmów&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mogę Was prosić o wytłumaczenie dwóch poniższych przykładów? &lt;br /&gt;
&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
• i=0;&lt;br /&gt;
• wykonuj:&lt;br /&gt;
• j=i;&lt;br /&gt;
• wykonuj:&lt;br /&gt;
• j=j+1;&lt;br /&gt;
• dopóki (j&amp;lt;n);&lt;br /&gt;
• i=i+1;&lt;br /&gt;
• dopóki (i&amp;lt;n);&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
• i=0;&lt;br /&gt;
• wykonuj:&lt;br /&gt;
• j=1;&lt;br /&gt;
• wykonuj:&lt;br /&gt;
• j=j*2;&lt;br /&gt;
• dopóki (j&amp;lt;n);&lt;br /&gt;
• i=i+1;&lt;br /&gt;
• dopóki (i&amp;lt;n);&lt;br /&gt;
&lt;br /&gt;
Dziękuję za pomoc.</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/217016/oszacuj-zlozonosc-algorytmu</guid>
<pubDate>Mon, 16 Jan 2017 22:49:11 +0000</pubDate>
</item>
<item>
<title>Złożoność algorytmów</title>
<link>https://forum.pasja-informatyki.pl/155423/zlozonosc-algorytmow</link>
<description>

&lt;p&gt;Witam, mam zadańko do egzaminu. Proszę o pomoc :)
&lt;br&gt;

&lt;br&gt;
Mamy algorytm który ma złożoność &lt;strong&gt;n^3&lt;/strong&gt;, &lt;span style=&quot;text-decoration: underline;&quot;&gt;zwiększamy dwukrotnie &lt;/span&gt;dane wejściowe. Ile razy zwiększy się złożoność obliczeniowa przy większych danych.&lt;/p&gt;



&lt;p&gt;No więc podstawiamy pod &lt;span style=&quot;text-decoration: underline;&quot;&gt;n = 2n&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;Mamy (2n)^3=&lt;strong&gt;8n^3&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Widzimy że złożoność jest &lt;span style=&quot;text-decoration: underline;&quot;&gt;8 razy większa&lt;/span&gt;.&amp;nbsp;
&lt;br&gt;
I tu jest wszystko jasne, prosty jest również przykład gdzie wstępna złożoność&amp;nbsp;to log n, wtedy jest ona o jakąś liczbę kroków większa. Problem pojawia się przy n log n. Przypuśćmy że rozmiar danych wejściowych również zwiększ się 2 razy. Rozpisując (2n log(n))/(n log(n))&amp;nbsp;możemy dojść&amp;nbsp;do &amp;nbsp;
&lt;br&gt;
(2 log(n) + 2)/log(n). Tego chyba nie da się dokładnie wyliczyć. Pozostaje chyba uznać za mało istotną to &quot;wolną&quot; dwójkę i zaokrąglić to do 2. Proszę o pomoc :)&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/155423/zlozonosc-algorytmow</guid>
<pubDate>Sun, 03 Jul 2016 08:25:23 +0000</pubDate>
</item>
<item>
<title>Jak obliczyć złożoność mojego algorytmu?</title>
<link>https://forum.pasja-informatyki.pl/100043/jak-obliczyc-zlozonosc-mojego-algorytmu</link>
<description>Witam. Napisałem bardzo prosty algorytm w C++, który wyświetla dwie macierze. Zadanie to było &amp;quot;transponowanie macierzy&amp;quot;. Mam wielką prośbę. Algorytm został napisany po tygodniu nauki z youtubem i nie bardzo znam się na C++ jak i samym programowaniu. Jak obliczyć jego złożoność? bardzo, ale to bardzo proszę o wyjaśnienie jak to się liczy i jaką złożoność posiada mój algorytm. Przepraszam z góry, że nie wstawiam kodu, ale jestem w pracy i nie mam w tym momencie do projektu dostępu.&lt;br /&gt;
W każdym razie alg jest bardzo prosty i posiada 2x dwie pętle &amp;nbsp;for(int i=0; i&amp;lt;n; i++) for(int j=0; j&amp;lt;n; j++)&lt;br /&gt;
jedna para &amp;quot;for&amp;quot; dla jednej macierzy druga dla drugiej. Bardzo proszę o pomoc w zrozumieniu złożoności takiego algorytmu.</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/100043/jak-obliczyc-zlozonosc-mojego-algorytmu</guid>
<pubDate>Mon, 18 Jan 2016 11:32:43 +0000</pubDate>
</item>
<item>
<title>Złożoność czasowa algorytmu - problem ze zrozumieniem</title>
<link>https://forum.pasja-informatyki.pl/71513/zlozonosc-czasowa-algorytmu-problem-ze-zrozumieniem</link>
<description>

&lt;p&gt;Cześć wszystkim!
&lt;br&gt;
Chciałbym prosić Was o pomoc w zrozumieniu zagadnienia złożoności czasowej. Domyślam się, iż jest to podstawa całej algorytmiki, dlatego brak wiedzy na ten temat skreśla moją przyszlość związaną z pisaniem dobrych algorytmów, bo wiadomo można klepać dużo, ale moża też mądrze :)
&lt;br&gt;

&lt;br&gt;
Otóż sam problem pojawił się już na wykładzie. Intuicyjnie domyślam się, iż chodzi o liczbę instrukcji która wykonała się w danym algorytmie, a także, że zależna jest ona od zmiennych wejściowych.&lt;/p&gt;



&lt;p&gt;Myśle, że zrozumiem o na tym przykładzie:&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;zrzut ekranu&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=11796671572337842236&quot; style=&quot;height:375px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;Problemem jest liczba instukcji, nie rozumiem skąd się wzięła, mimo że rozumiem algorytm. Chciałbym prosić was o poprowadzenie mnie &quot;za rączkę&quot; podczas liczenia.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Pozdrawiam :)&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/71513/zlozonosc-czasowa-algorytmu-problem-ze-zrozumieniem</guid>
<pubDate>Tue, 20 Oct 2015 20:32:45 +0000</pubDate>
</item>
</channel>
</rss>