Hem Personliga finanser Som handlar om algoritmkomplexitet - dummies <[SET:descriptionsv]Som du redan vet att algoritmer är komplexa.

Som handlar om algoritmkomplexitet - dummies <[SET:descriptionsv]Som du redan vet att algoritmer är komplexa.

Video: Lag Syd gör upp i immunitetstävling som handlar om uthållighet – Robinson (TV4) 2024

Video: Lag Syd gör upp i immunitetstävling som handlar om uthållighet – Robinson (TV4) 2024
Anonim

En del av Algorithms For Dummies Cheat Sheet

Du vet redan att algoritmer är komplexa. Men du behöver veta hur komplex en algoritm är för att ju mer komplexa är, desto längre tid tar det att springa. Följande tabell hjälper dig att förstå de olika nivåerna av komplexitet som presenteras i ordning av körtid (från snabbast till långsammaste).

Komplexitet Beskrivning
Konstant komplexitet O (1) Ger en ojämn exekveringstid, oavsett hur mycket input du tillhandahåller. Varje ingång kräver en enda enhet för körningstid.
Logaritmisk komplexitet O (log n) Antalet operationer växer långsammare än ingången, vilket gör algoritmen mindre effektiv med små ingångar och effektivare med större. En typisk algoritm för denna klass är binärsökningen.
Linjär komplexitet O (n) Verksamheten växer med ingången i ett 1: 1-förhållande. En typisk algoritm är iteration, när du skannar in en gång och tillämpar en operation på varje del av den.
Linearitmisk komplexitet O (n log n) Komplexitet är en blandning mellan logaritmisk och linjär komplexitet. Det är typiskt för några smarta algoritmer som används för att beställa data, till exempel Mergesortsort, Heapsort och Quicksort.
Kvadratisk komplexitet O (n 2 ) Verksamheten växer som en kvadrat av antalet ingångar. När du har en iteration inom en annan iteration (kallad nestade iterationer i datavetenskap), har du kvadratisk komplexitet. Du har till exempel en lista över namn och för att hitta de mest liknande, jämför du varje namn mot alla andra namn. Några mindre effektiva beställningsalgoritmer presenterar sådan komplexitet: bubbelsort, urvalssort och insertionssort. Denna nivå av komplexitet innebär att dina algoritmer kan springa i timmar eller till och med dagar innan de når en lösning.
Kubisk komplexitet O (n 3 ) Operationerna växer ännu snabbare än kvadratisk komplexitet, för nu har du flera nestade iterationer. När en algoritm har denna ordning med komplexitet och du behöver bearbeta en blygsam mängd data (100 000 element), kan din algoritm löpa i flera år. När du har ett antal operationer som är en kraft för ingången, är det vanligt att referera till algoritmen som löpande i polynomisk tid.
Exponentiell komplexitet O (2 n ) Algoritmen tar dubbelt så många tidigare operationer för varje nytt element som läggs till. När en algoritm har denna komplexitet kan även små problem ta evigt. Många algoritmer som gör uttömmande sökningar har exponentiell komplexitet. Det klassiska exemplet för denna nivå av komplexitet är emellertid beräkningen av Fibonacci-nummer.
Faktisk komplexitet O (n!) Denna algoritm presenterar en riktig mardröm av komplexitet på grund av det stora antalet möjliga kombinationer mellan elementen. Tänk dig att: Om din ingång är 100 objekt och en operation på din dator tar 10 -6 sekunder (en rimlig hastighet för varje dator nuförtiden) behöver du cirka 10 140 år för att slutföra uppgiften framgångsrikt (en omöjlig tid eftersom universumets ålder beräknas vara 10 14 år). Ett känt problem med problemkomplexiteten är det resande säljareproblemet, där en säljare måste hitta den kortaste vägen för att besöka många städer och komma tillbaka till startstaden.
Som handlar om algoritmkomplexitet - dummies <[SET:descriptionsv]Som du redan vet att algoritmer är komplexa.

Redaktörens val

Jewish Funeral Traditions - dummies

Jewish Funeral Traditions - dummies

Judiska begravningar sker vanligen i en synagoge, begravningshem eller på en kyrkogård. Med tradition är judiska begravningar enkla (symboliserar tron ​​att människor är alla lika i döden), men de varierar mycket och har ingen uppsättning liturgi. Att skicka blommor till ett begravnings- eller sorgshem är starkt avskräckt i judendomen. Inte bara kommer ...

Identifiera komplicerade grävande dummies

Identifiera komplicerade grävande dummies

Komplicerat roende är det tekniska namnet som sorgproffs ger till en sorgprocess som sitter fast vid något tillfälle , vilket gör det omöjligt för de förlorade att framgångsrikt starta eller avsluta sorgprocessen. Komplicerat sorg är ofta ett tecken på olösta problem i förhållandet mellan de förlorade och den avlidne som gör det ...

Redaktörens val

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

När du har en anpassad vy för MapController i din iOS-app, måste du berätta för iPad-storyboardet att du laddar in din anpassade vy i stället för en UIViewController. Följ dessa steg: Välj Projekt navigator genom att välja Main_iPad. storyboard och välj sedan View Controller i View Controller - Map Scene i dokumentutskriften. ...

Hur man roterar objekt i din iOS-app - dummies

Hur man roterar objekt i din iOS-app - dummies

Här hittar du hur man rotera en vy (i så fall vrid bilen runt) i din iOS-app. För att göra det uppdaterar du den roterande kodstuben du startade med och ersätter den med den fetstilta koden. - (void) rotera {CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animation) () = ^ () {self. bil. transformera = transformera; ...

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Bör du lägga till en ny anpassad vykontroll till din iOS-app innan du fortsätter till dessa steg. Du behöver fortfarande berätta för storyboardet att du vill att den ska ladda den nya anpassade vykontrollen istället för en UIViewController. Följ dessa steg:

Redaktörens val

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Adobe Creative Suite 5 (Adobe CS5) Illustrator tillåter Du sparar en grafisk stil. En grafisk stil är en kombination av alla inställningar du väljer för ett visst filter eller en effekt i Utseendepanelen. Genom att spara informationen i en grafisk stil lagras du dessa attribut så att du snabbt och enkelt kan tillämpa ...

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

I Adobe Creative Suite 5 (Adobe CS5 ) Illustratör du kan använda markeringsverktyget för att skala och rotera ett valt objekt. Dra begränsningsboxens handtag för att ändra storlek på objektet, eller flytta dig utanför ett handtag och sedan, när markören ändras till en flippig pil (en böjd pil med pilhuvud i båda ändarna), dra till ...

Objekttransformation i Adobe CS5 Illustrator - dummies

Objekttransformation i Adobe CS5 Illustrator - dummies

Verktygen Rotate, Reflect, Scale och Shear i Adobe Creative Suite 5 (Adobe CS5) Illustrator använder alla samma grundläggande steg för att utföra transformationer. Här är fem sätt att transformera ett objekt: en för en godtycklig omvandling och fyra andra för exakta omvandlingar baserat på en numerisk mängd som du anger. Vilkårlig omvandlingsmetod Eftersom detta ...