Leela Krishna
Leela Krishna

följ

Apr 1, 2019 * 4 min läs

i swift programmeringsspråk …

del -1:

varför datastrukturer?

när du skapar moderna appar förbises ofta mycket av teorin som är inneboende i algoritmer. För lösningar som förbrukar relativt små mängder data kan beslut om specifika tekniker eller designmönster inte vara viktiga som att bara få saker att fungera. Men som publiken växer så kommer data. Mycket av vad big tech företag framgångsrika är arv förmåga att tolka stora mängder data. Making sense of data tillåter användare att ansluta, dela, slutföra transaktioner och fatta beslut.

Datastrukturer I Samband Med Användning Av Data :

  • grundläggande(elementära) datastrukturer

Stack, kö, sorteringsalgoritmer

  • träd

träd & binära träd, binär sökning, Heap, Heap Sortera, prioritetskö

  • grafer

grafer, adjacency lista, Dijkstra algoritm, prim algoritm

Bisexuell Big O notation :

asymptotisk analys är processen att beskriva effektiviteten av algoritmer, och det är allmänt uttryckt i ett gemensamt format som kallas Big O notation.

  • Tidskomplexitet :

tiden för att slutföra algoritmen(funktionen) när dess ingångsstorlek (n) växer.

  • Rymdkomplexitet :

mängden minne(utrymme) som behövs för en algoritm (funktion) för att köra.

båda dessa kan uttryckas i stor O-Notation.

  • de vanligaste Tidskomplexiteterna :

→ konstant tid (O(1)) :-

en konstant tidsalgoritm är som har samma gångtid oavsett inmatning. Den stora O-notationen för detta är O (1).

linjär tid (o (n)) :-

en linjär tidsalgoritm är vilken dess hastighet är beroende av dess ingångsstorlek. Med andra ord blir det mindre effektivt när dess ingångsstorlek(n) växer.

kvadratisk tid (o (n2)) :-

det hänvisar till en algoritm som tar tid till proportionen till kvadraten på ingångsstorleken. Det går snabbt ur kontroll när dess ingångsstorlek ökar.

logaritmisk tid (o(log n)) :-

en vanlig algoritm med o(log n) tidskomplexitet är binär sökning vars rekursiva relation är T(n/2) + O(1), dvs vid varje efterföljande nivå av trädet delar du problemet i hälften och gör konstant mängd ytterligare arbete.

kvasilinjär tid (o (n log n)) :-

en algoritm sägs köras i kvasilinjär tid(även kallad log-linjär tid) om T(n) = O (n log^k n) för någon positiv konstant k; linearitmisk tid är fallet k = 1.

exempel :

datastruktur är ett systematiskt sätt att organisera data för att kunna använda den effektivt. Följande termer är grundvillkoren för en datastruktur.

  • gränssnitt-varje datastruktur har ett gränssnitt. Gränssnitt representerar den uppsättning operationer som en datastruktur stöder. Ett gränssnitt ger bara en lista över operationer som stöds, typ av parametrar de kan acceptera och returnera typ av dessa operationer.
  • implementering-implementering ger den interna representationen av en datastruktur. Implementeringen ger också definitionen av de algoritmer som används i driften av datastrukturen.

→ egenskaper för en datastruktur :

  • korrekthet-implementering av datastruktur bör implementera dess gränssnitt korrekt.
  • tidskomplexitet-körtid eller exekveringstiden för operationer av datastrukturen måste vara så liten som möjligt.
  • Rymdkomplexitet-minnesanvändningen av en datastruktur bör vara så liten som möjligt.

→ behov av datastruktur:

eftersom applikationer blir komplexa och datarika finns det tre vanliga problem som applikationer möter nu för tiden.

  1. datasökning-Tänk på en inventering av 1 miljon(106) artiklar i en butik. Om programmet är att söka ett objekt, måste den söka ett objekt i 1 miljon (106) objekt varje gång bromsa sökningen. När data växer blir sökningen långsammare.
  2. processorhastighet-processorhastighet även om den är mycket hög, faller begränsad om data växer till miljarder poster.
  3. flera förfrågningar – eftersom tusentals användare kan söka data samtidigt på en webbserver, misslyckas även den snabba servern när de söker efter data.

för att lösa de ovan nämnda problemen kommer datastrukturer att rädda. Data kan organiseras i en datastruktur på ett sådant sätt att alla objekt inte kan krävas för att sökas, och de nödvändiga uppgifterna kan sökas nästan omedelbart.

Brasilien låt oss se ett Stapelomslag i swift :

vi skapar ett omslag runt Swifts array, där vi använder arrayen som en lagringsstruktur. Arrays ger konstant tid (o (1)) Infogningar och raderingar när de utförs från slutet av matrisen.

det är FIFO megapixlar först i först ut Data.

exempel i iOS : Uinavigation Stack, ångra funktioner, etc.

Lämna ett svar

Din e-postadress kommer inte publiceras.