Ordo..???

    Dela
    avatar
    Tanax

    Antal inlägg : 108
    Join date : 09-08-25

    Ordo..???

    Inlägg av Tanax i ons jan 26, 2011 11:57 pm

    Alltså, är det bara jag som är korkad och inte fattar detta? Razz
    Någon som har lust att ta ett praktiskt exempel på hur man räknar ut det??

    Jag fattar ju typ vad det ÄR men inte hur man applicerar/räknar ut det.
    avatar
    Princess
    ♥♥♥♥♥Princess Admin♥♥♥♥♥
    ♥♥♥♥♥Princess Admin♥♥♥♥♥

    Antal inlägg : 2804
    Join date : 09-08-25
    Age : 27
    Ort : The Mushroom Kingdom

    Sv: Ordo..???

    Inlägg av Princess i tor jan 27, 2011 12:26 am

    Alltså, precis min tanke.
    avatar
    roofie
    Felböjd Jens
    Felböjd Jens

    Antal inlägg : 803
    Join date : 09-08-26
    Age : 29
    Ort : Jakobsberg

    Sv: Ordo..???

    Inlägg av roofie i tor jan 27, 2011 6:54 am

    Nu vaknade jag ju för typ 10 minuter sedan och kanske säger det här åt helvete.
    Men jag tror att jag har förstått Ordo som metoden med vilken man beräknar belastningen en åtgärd gör på tiden eller minnet i datorn. N symboliserar listans längd, och listan är den datamängd som ska behandlas. Därefter skriver man Ordo på olika sätt för att överensstämma med vilka operationer som har utförts och vad som skall mätas.


    Refferenser:
    http://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/
    http://sv.wikipedia.org/wiki/Komplexitetsteori
    http://ilearn.dsv.su.se/mod/resource/view.php?id=1479 nya kursmaterialet för denna vecka
    avatar
    Tanax

    Antal inlägg : 108
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Tanax i tor jan 27, 2011 7:43 pm

    roofie skrev:Nu vaknade jag ju för typ 10 minuter sedan och kanske säger det här åt helvete.
    Men jag tror att jag har förstått Ordo som metoden med vilken man beräknar belastningen en åtgärd gör på tiden eller minnet i datorn. N symboliserar listans längd, och listan är den datamängd som ska behandlas. Därefter skriver man Ordo på olika sätt för att överensstämma med vilka operationer som har utförts och vad som skall mätas.


    Refferenser:
    http://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/
    http://sv.wikipedia.org/wiki/Komplexitetsteori
    http://ilearn.dsv.su.se/mod/resource/view.php?id=1479 nya kursmaterialet för denna vecka

    Dessa hjälpte. Hade iofs redan läst hans PDF sen tidigare. Första länken var riktigt bra. Den gav mera konkreta exempel med kod - gillas!

    Så för att ta ett exempel från uppgifterna denna vecka så uppgift 1b(den iterativa funktionen) blir alltså O(N) om jag förstått det rätt? Ifall det nu är rätt återstår bara problemet att "redovisa" detta i en beskrivning med beräkningar(vadå för beräkningar????)..
    avatar
    Sirap

    Antal inlägg : 53
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Sirap i tor jan 27, 2011 10:21 pm

    När jag försökte fråga i moodle hur de ville att det skulle redovisas så fick jag bara ett drygt svar, typ "läs i boken". Men jag gör så här:

    sort()

    tid:

    En do while-loop med ett okänt antal varv, vari sorted + mix anropas:

    mix + ?( sorted + mix ) + sorted
    n + ?( n + n) + n
    2n + ? * 2n
    O(?)
    avatar
    Mars
    Ölväktare

    Antal inlägg : 1059
    Join date : 09-08-25
    Age : 28
    Ort : Farsta

    Sv: Ordo..???

    Inlägg av Mars i fre jan 28, 2011 12:45 am

    Jag personligen har inte försökt mig på någon form att mattematik alls utan kör allt förklarat i klarspråk.
    avatar
    roofie
    Felböjd Jens
    Felböjd Jens

    Antal inlägg : 803
    Join date : 09-08-26
    Age : 29
    Ort : Jakobsberg

    Sv: Ordo..???

    Inlägg av roofie i fre jan 28, 2011 1:56 pm

    Jag må vara lite m4d_n'Crazy.. Men jag avskyr när man lägger upp en bild av Kod.Så jag lägger upp uppgiftens kod i kod.

    Uppgift 1
    Spoiler:
    Nedan följer två exempel på hur man kan kontrollera om en array av datatypen char innehåller ett palindrom. Den ena lösningen använder rekursion och den andra är iterativ.

    Läs igenom koden och beräkna sedan tids- och minneskomplexiteten i värsta och bästa fallet för de båda kodsnuttarna. Motivera dina resultat och visa hur du beräknat dem.
    Kod:
    public class Upg1 {
       private boolean recursiceIsPalindrome(char[] cs, int left, int right){
          if(left >= right)
             return true;
          else if(cs[left] == ' ')
             return recursiceIsPalindrome(cs, ++left, right);
          else if(cs[right] == ' ')
             return recursiceIsPalindrome(cs, left, ++right);
          else if(cs[left] == cs[right])
             return recursiceIsPalindrome(cs, ++left, ++right);
          
          return false;
       }
       
       private boolean iterativeIsPalindrome(char[] cs){
          int right = cs.length-1;
          
          for(int left = 0; left <= right;){
             if(cs[left] == ' ')
                left++;
             else if(cs[right] == ' ')
                right++;
             else if(cs[left] != cs[right])
                return false;
             else{
                right--; left++;
             }
          }
          return true;
       }
    }


    Uppgift 2
    Spoiler:
    Här är delar av kod till en klass som sorterar data. Beräkna tids- och minneskomplexiteten i värsta fallet (Ordo) för samtliga metoder. Motivera dina svar och visa dina beräkningar.
    Kod:
    public class Upg2 {
       private static java.util.Random rnd = new java.util.Random();
       
       private static void swap(int[] array, int index1, int index2){
          int tmp = array[index1];
          array[index1] = array[index2];
          array[index2] = tmp;
       }
       
       private static void mix(int[] array){
          for( int n=0; n < array.length; ++n){
             swap(array, n, rnd.nextInt(array.length));
          }
       }
       
       private static boolean sorted(int[] array){
          for( int n = 1; n < array.length; ++n ){
             if(array[n] < array[n - 1])
                return false;
          }
          return true;
       }
       
       public static void sort(int[] array){
          do{
             mix(array);
          }while(!sorted(array));
       }
    }


    Uppgift 3
    Spoiler:
    Beräkna tids- och minneskomplexiteten i värsta fallet (Ordo) för den länkade lista som finns i kursbokens tredje kapitel. Du kan hitta koden här.

    Ange svaret i en tabell där varje metod har en egen rad med kolumner för tids- och minneskomplexiteten, enligt exemplet nedan. Motivera också dina svar och visa hur du kom fram till din lösning, även om lösningen verkar självklar.
    Metodnamn:Tidskomplexitet:Minneskomplexitet:
    isEmpty()O(N4)O(0)
    toString()O(N42)O(N)





    Observera att tabellen ovan bara är ett exempel. Du ska själv fylla i korrekta värden för Ordo för samtliga av listans metoder. Motiveringarna kan du antingen lägga in i tabellen eller skriva separat.
    Inlämning

    Du lämnar in din uppgift som en PDF-fil med dina svar. Tänk på att din inlämning ska vara anonym.

    Totalt kan man få 100 poäng på veckans uppgift, varav 2x15 är för peer review. För att bli godkänd på uppgiften krävs att du får minst 90 poäng.

    Kod:
    /**
     * LinkedList class implements a doubly-linked list.
     */
    public class MyLinkedList<AnyType> implements Iterable<AnyType>
    {
        /**
        * Construct an empty LinkedList.
        */
        public MyLinkedList( )
        {
            clear( );
        }
       
        /**
        * Change the size of this collection to zero.
        */
        public void clear( )
        {
            beginMarker = new Node<AnyType>( null, null, null );
            endMarker = new Node<AnyType>( null, beginMarker, null );
            beginMarker.next = endMarker;
           
            theSize = 0;
        }
       
        /**
        * Returns the number of items in this collection.
        * @return the number of items in this collection.
        */
        public int size( )
        {
            return theSize;
        }
       
        public boolean isEmpty( )
        {
            return size( ) == 0;
        }
       
        /**
        * Adds an item to this collection, at the end.
        * @param x any object.
        * @return true.
        */
        public boolean add( AnyType x )
        {
            add( size( ), x ); 
            return true;       
        }
       
        /**
        * Adds an item to this collection, at specified position.
        * Items at or after that position are slid one position higher.
        * @param x any object.
        * @param idx position to add at.
        * @throws IndexOutOfBoundsException if idx is not between 0 and size(), inclusive.
        */
        public void add( int idx, AnyType x )
        {
            addBefore( getNode( idx, 0, size( ) ), x );
        }
       
        /**
        * Adds an item to this collection, at specified position p.
        * Items at or after that position are slid one position higher.
        * @param p Node to add before.
        * @param x any object.
        * @throws IndexOutOfBoundsException if idx is not between 0 and size(), inclusive.
        */   
        private void addBefore( Node<AnyType> p, AnyType x )
        {
            Node<AnyType> newNode = new Node<AnyType>( x, p.prev, p );
            newNode.prev.next = newNode;
            p.prev = newNode;       
            theSize++;
        } 
       
       
        /**
        * Returns the item at position idx.
        * @param idx the index to search in.
        * @throws IndexOutOfBoundsException if index is out of range.
        */
        public AnyType get( int idx )
        {
            return getNode( idx ).data;
        }
           
        /**
        * Changes the item at position idx.
        * @param idx the index to change.
        * @param newVal the new value.
        * @return the old value.
        * @throws IndexOutOfBoundsException if index is out of range.
        */
        public AnyType set( int idx, AnyType newVal )
        {
            Node<AnyType> p = getNode( idx );
            AnyType oldVal = p.data;
           
            p.data = newVal; 
            return oldVal;
        }
       
        /**
        * Gets the Node at position idx, which must range from 0 to size( ) - 1.
        * @param idx index to search at.
        * @return internal node corrsponding to idx.
        * @throws IndexOutOfBoundsException if idx is not between 0 and size( ) - 1, inclusive.
        */
        private Node<AnyType> getNode( int idx )
        {
            return getNode( idx, 0, size( ) - 1 );
        }

        /**
        * Gets the Node at position idx, which must range from lower to upper.
        * @param idx index to search at.
        * @param lower lowest valid index.
        * @param upper highest valid index.
        * @return internal node corrsponding to idx.
        * @throws IndexOutOfBoundsException if idx is not between lower and upper, inclusive.
        */   
        private Node<AnyType> getNode( int idx, int lower, int upper )
        {
            Node<AnyType> p;
           
            if( idx < lower || idx > upper )
                throw new IndexOutOfBoundsException( "getNode index: " + idx + "; size: " + size( ) );
               
            if( idx < size( ) / 2 )
            {
                p = beginMarker.next;
                for( int i = 0; i < idx; i++ )
                    p = p.next;           
            }
            else
            {
                p = endMarker;
                for( int i = size( ); i > idx; i-- )
                    p = p.prev;
            }
           
            return p;
        }
       
        /**
        * Removes an item from this collection.
        * @param idx the index of the object.
        * @return the item was removed from the collection.
        */
        public AnyType remove( int idx )
        {
            return remove( getNode( idx ) );
        }
       
        /**
        * Removes the object contained in Node p.
        * @param p the Node containing the object.
        * @return the item was removed from the collection.
        */
        private AnyType remove( Node<AnyType> p )
        {
            p.next.prev = p.prev;
            p.prev.next = p.next;
            theSize--;
           
            return p.data;
        }
       
        /**
        * Returns a String representation of this collection.
        */
        public String toString( )
        {
            StringBuilder sb = new StringBuilder( "[ " );
           
            for( AnyType x : this )
                sb.append( x + " " );
            sb.append( "]" );
       
            return new String( sb );
        }
       
        /**
        * Obtains an Iterator object used to traverse the collection.
        * @return an iterator positioned prior to the first element.
        */
        public java.util.Iterator<AnyType> iterator( )
        {
            return new LinkedListIterator( );
        }

        /**
        * This is the implementation of the LinkedListIterator.
        * It maintains a notion of a current position and of
        * course the implicit reference to the MyLinkedList.
        */
        private class LinkedListIterator implements java.util.Iterator<AnyType>
        {
            private Node<AnyType> current = beginMarker.next;
            private boolean okToRemove = false;
           
            public boolean hasNext( )
            {
                return current != endMarker;
            }
           
            public AnyType next( )
            {
                if( !hasNext( ) )
                    throw new java.util.NoSuchElementException( );
                     
                AnyType nextItem = current.data;
                current = current.next;
                okToRemove = true;
                return nextItem;
            }
           
            public void remove( )
            {
                if( !okToRemove )
                    throw new IllegalStateException( );
                   
                MyLinkedList.this.remove( current.prev );
                okToRemove = false;     
            }
        }
       
        /**
        * This is the doubly-linked list node.
        */
        private static class Node<AnyType>
        {
            public Node( AnyType d, Node<AnyType> p, Node<AnyType> n )
            {
                data = d; prev = p; next = n;
            }
           
            public AnyType data;
            public Node<AnyType>  prev;
            public Node<AnyType>  next;
        }
       
        private int theSize;
        private Node<AnyType> beginMarker;
        private Node<AnyType> endMarker;
    }

    class TestLinkedList
    {
        public static void main( String [ ] args )
        {
            MyLinkedList<Integer> lst = new MyLinkedList<Integer>( );
           
            for( int i = 0; i < 10; i++ )
                lst.add( i );
            for( int i = 20; i < 30; i++ )
                lst.add( 0, i );
           
            lst.remove( 0 );
            lst.remove( lst.size( ) - 1 );
           
            System.out.println( lst );
           
            java.util.Iterator<Integer> itr = lst.iterator( );
            while( itr.hasNext( ) )
            {
                itr.next( );
                itr.remove( );
                System.out.println( lst );
            }
        }
    }

    Criteria

    • Uppgift 1: Tidskomplexiteten är korrekt beräknad och motiveringar finns. (10p)
    • Uppgift 1: Minneskomplexiteten är korrekt beräknad och motiveringar finns. (10p)
    • Uppgift 2: Tids- och minneskomplexiteten är korrekt beräknad för samtliga metoder. (10p)
    • Uppgift 2: Motiveringar finns till samtliga svar och beräkningar. (10p)
    • Uppgift 3: Tidskomplexiteten är korrekt beräknad. Max tre metoder får vara felaktiga. (10p)
    • Uppgift 3: Minneskomplexiteten är korrekt beräknad. Max tre metoder får vara felaktiga. (10p)
    • Uppgift 3: Motivering finns till samtliga beräknade värden. (10p)
    avatar
    roofie
    Felböjd Jens
    Felböjd Jens

    Antal inlägg : 803
    Join date : 09-08-26
    Age : 29
    Ort : Jakobsberg

    Sv: Ordo..???

    Inlägg av roofie i fre jan 28, 2011 2:21 pm

    Seriös
    One has to love the structure.
    För man ska vara strukturerad.
    avatar
    Sirap

    Antal inlägg : 53
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Sirap i fre jan 28, 2011 3:27 pm

    roofie skrev:Jag må vara lite m4d_n'Crazy.. Men jag avskyr när man lägger upp en bild av Kod.Så jag lägger upp uppgiftens kod i kod.

    perfekt då kan jag ta en printscr

    avatar
    Tanax

    Antal inlägg : 108
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Tanax i fre jan 28, 2011 4:53 pm

    Gick på handledningen idag, fattar allting nu - typ. Rekommenderas till nästa uppgift!
    avatar
    Araklaj

    Antal inlägg : 1337
    Join date : 09-08-26
    Age : 27
    Ort : Sollentuna

    Sv: Ordo..???

    Inlägg av Araklaj i fre jan 28, 2011 5:47 pm

    Jag är glad att jag går design..
    avatar
    Mars
    Ölväktare

    Antal inlägg : 1059
    Join date : 09-08-25
    Age : 28
    Ort : Farsta

    Sv: Ordo..???

    Inlägg av Mars i fre jan 28, 2011 7:44 pm

    Tanax skrev:Gick på handledningen idag, fattar allting nu - typ. Rekommenderas till nästa uppgift!

    Jo, det hjälpte. Att prata igenom ordo och uppgiften med folk hjälpte en hel del det med.
    avatar
    XistenZ
    KorvarN^

    Antal inlägg : 583
    Join date : 09-09-02
    Age : 30
    Ort : Norrtälje

    Sv: Ordo..???

    Inlägg av XistenZ i lör jan 29, 2011 7:08 pm

    Någon som med enkla ord kan förklara hur man beter sig för att räkna ut någon av uppgifterna? Behöver bara ett litet exempel så jag kanske kan förstå något av det. Föreläsningen gav ingenting, böckerna behagar aldrig komma och internet är packat med matematiker, jag talar inte deras språk direkt.
    Uppgiften är ju due på måndag, har bara halva dagen imorrn på mig :S
    Also: rekursiv och iterativ? Humz?
    plx
    avatar
    roofie
    Felböjd Jens
    Felböjd Jens

    Antal inlägg : 803
    Join date : 09-08-26
    Age : 29
    Ort : Jakobsberg

    Sv: Ordo..???

    Inlägg av roofie i lör jan 29, 2011 7:42 pm

    Om din bas ligger på att förklara vad "iterativ" och "rekursiv" innebär tror inte jag att en halv dag kommer att vara nog för att både lära sig begreppen och att lösa uppgifterna ens om du jobbar konstant under den tiden.
    Sad story is sad.
    avatar
    XistenZ
    KorvarN^

    Antal inlägg : 583
    Join date : 09-09-02
    Age : 30
    Ort : Norrtälje

    Sv: Ordo..???

    Inlägg av XistenZ i lör jan 29, 2011 7:47 pm

    roofie skrev:Om din bas ligger på att förklara vad "iterativ" och "rekursiv" innebär tror inte jag att en halv dag kommer att vara nog för att både lära sig begreppen och att lösa uppgifterna ens om du jobbar konstant under den tiden.
    Sad story is sad.
    Thx for the help (Y)
    avatar
    roofie
    Felböjd Jens
    Felböjd Jens

    Antal inlägg : 803
    Join date : 09-08-26
    Age : 29
    Ort : Jakobsberg

    Sv: Ordo..???

    Inlägg av roofie i lör jan 29, 2011 7:56 pm

    XistenZ skrev:
    roofie skrev:Om din bas ligger på att förklara vad "iterativ" och "rekursiv" innebär tror inte jag att en halv dag kommer att vara nog för att både lära sig begreppen och att lösa uppgifterna ens om du jobbar konstant under den tiden.
    Sad story is sad.
    Thx for the help (Y)
    Jag är själv inte klar med uppgiften, och jag är inte ute efter att skälpa.
    Men du har ju satt dig själv i en djup grop.
    avatar
    roofie
    Felböjd Jens
    Felböjd Jens

    Antal inlägg : 803
    Join date : 09-08-26
    Age : 29
    Ort : Jakobsberg

    Sv: Ordo..???

    Inlägg av roofie i sön jan 30, 2011 10:50 am

    Nu har jag äntligen skickat in, satt flera timmar inatt o nästlade upp de sista beroendena ;p
    avatar
    Sirap

    Antal inlägg : 53
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Sirap i sön jan 30, 2011 12:43 pm

    Rekursiv: metoden anropar sig själv, t.ex. fortsätter tills den når en return i något anrop. Ny stack frame i minnet tillverkas för varje anrop.

    Iterativ: den gör saker flera gånger, för det mesta ett obestämt antal gånger, t.ex. array.size() antal gånger.

    För att räkna ut tidskomplexitet kan du börja med att titta på antalet jämförelser t.ex. En jämförelse tar alltid lika lång tid. 1 > 2 = O(1).

    En loop som beror på en listas längd är O(n). Den ökar lika många gånger i tid som listan ökar i storlek (i värsta fall, stort O betyder som värst). Dubbel längd ger dubbla tiden i värsta fall, osv.

    En loop behöver däremot inte mer minne än för att köra ett varv om man inte t.ex. skapar nya saker i loopen och sparar dem nånstans där de överlever "varje varv".
    avatar
    Sirap

    Antal inlägg : 53
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Sirap i sön jan 30, 2011 12:46 pm

    roofie skrev:Nu har jag äntligen skickat in, satt flera timmar inatt o nästlade upp de sista beroendena ;p

    Fick du sju O(n) i tid, och en O(n) i minne?
    avatar
    Tanax

    Antal inlägg : 108
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Tanax i sön jan 30, 2011 5:25 pm

    Sirap skrev:
    roofie skrev:Nu har jag äntligen skickat in, satt flera timmar inatt o nästlade upp de sista beroendena ;p

    Fick du sju O(n) i tid, och en O(n) i minne?

    Jag fick 8 O(n) i tid och 1 O(n) i minne Surprised vilka funktioner fick du?
    avatar
    Sirap

    Antal inlägg : 53
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Sirap i sön jan 30, 2011 11:30 pm

    Tanax skrev:
    Sirap skrev:
    roofie skrev:Nu har jag äntligen skickat in, satt flera timmar inatt o nästlade upp de sista beroendena ;p

    Fick du sju O(n) i tid, och en O(n) i minne?

    Jag fick 8 O(n) i tid och 1 O(n) i minne Surprised vilka funktioner fick du?

    Titta närmare på en av add-metoderna ;-) Jag fick också 8 först men upptäckte det efter en stund...

    Fast nu ändrade jag toString till typ omega(n) i minne och tid, kändes för slappt att anta att AnyType.toString var konstant, går ju inte riktigt att svara på den känns det som
    avatar
    Tanax

    Antal inlägg : 108
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Tanax i mån jan 31, 2011 1:46 pm

    Sirap skrev:
    Tanax skrev:
    Sirap skrev:
    roofie skrev:Nu har jag äntligen skickat in, satt flera timmar inatt o nästlade upp de sista beroendena ;p

    Fick du sju O(n) i tid, och en O(n) i minne?

    Jag fick 8 O(n) i tid och 1 O(n) i minne Surprised vilka funktioner fick du?

    Titta närmare på en av add-metoderna ;-) Jag fick också 8 först men upptäckte det efter en stund...

    Fast nu ändrade jag toString till typ omega(n) i minne och tid, kändes för slappt att anta att AnyType.toString var konstant, går ju inte riktigt att svara på den känns det som

    Huh Surprised? Båda add ska väl vara O(n)? Den första add kallar på den andra add och den andra add kallar på getNode #2 som är O(n) >.<

    Angående toString metoden hade jag den som O(n) på både minne och tid från början Smile
    Hade du alltså ytterligare 1 O(n) i minne utöver toString?
    avatar
    Sirap

    Antal inlägg : 53
    Join date : 09-08-25

    Sv: Ordo..???

    Inlägg av Sirap i mån jan 31, 2011 8:09 pm

    Tanax skrev:
    Sirap skrev:
    Tanax skrev:
    Sirap skrev:
    roofie skrev:Nu har jag äntligen skickat in, satt flera timmar inatt o nästlade upp de sista beroendena ;p

    Fick du sju O(n) i tid, och en O(n) i minne?

    Jag fick 8 O(n) i tid och 1 O(n) i minne Surprised vilka funktioner fick du?

    Titta närmare på en av add-metoderna ;-) Jag fick också 8 först men upptäckte det efter en stund...

    Fast nu ändrade jag toString till typ omega(n) i minne och tid, kändes för slappt att anta att AnyType.toString var konstant, går ju inte riktigt att svara på den känns det som

    Huh Surprised? Båda add ska väl vara O(n)? Den första add kallar på den andra add och den andra add kallar på getNode #2 som är O(n) >.<

    Angående toString metoden hade jag den som O(n) på både minne och tid från början Smile
    Hade du alltså ytterligare 1 O(n) i minne utöver toString?

    Det är ju så att en av add-metoderna lägger alltid till i slutet av listan. Den blir O(1).

    Nej, bara toString. Fast där ändrade jag till O(n) fast "i bästa fallet", dvs Omega(n). O(n) är ju som värst.

    Sponsored content

    Sv: Ordo..???

    Inlägg av Sponsored content


      Aktuell tid och datum: mån dec 18, 2017 7:03 am