Leela Krishna
Leela Krishna

Følg

Apr 1, 2019 * 4 min lese

i swift programmeringsspråk…

Del -1:

Hvorfor Datastrukturer?

når du lager moderne apper, blir mye av teorien som er knyttet til algoritmer ofte oversett. For løsninger som bruker relativt små mengder data, kan beslutninger om bestemte teknikker eller designmønstre ikke være viktige som bare å få ting til å fungere. Men som publikum vokser så vil dataene. Mye av hva store tech selskaper vellykket er arving evne til å tolke store mengder data. Making sense of data lar brukerne koble til, dele, fullføre transaksjoner og ta beslutninger.

Hryvnias Datastrukturer :

  • Grunnleggende(Elementære) datastrukturer

Stabel, Kø, Sorteringsalgoritmer

  • Trær

Trær & Binære Trær, Binært Søk, Heap, Heapsortering, Prioritetskø

  • Grafer

grafer, Adjacency list, dijkstra algoritme, prim algoritme

→ Big O Notasjon :

Asymptotisk Analyse Er Prosessen Med Å Beskrive Effektiviteten Av Algoritmer, Og Det Er Ofte Uttrykt I Et Felles Format Kjent Som Big O Notasjon.

  • Tidskompleksitet :

tiden for å fullføre algoritmen (funksjonen) når inngangsstørrelsen(n) vokser.

  • Romkompleksitet:

mengden minne (plass) som trengs for en algoritme (funksjon) for å kjøre.

Begge disse kan uttrykkes I Stor O-Notasjon.

  • Vanligste Tid Kompleksiteten :

→ Konstant Tid (O(1)) :-

en konstant tidsalgoritme er som har samme kjøretid uavhengig av inngangen. Den Store O-Notasjonen for Dette Er O(1).

→ Lineær Tid (O (n)) :-

en lineær tidsalgoritme er hvor hastigheten er avhengig av inngangsstørrelsen. Med andre ord blir det mindre effektivt når inngangsstørrelsen(n) vokser.

→ Kvadratisk Tid (O (n2)) :-

det refererer til en algoritme som tar tid til proporsjonal med kvadratet av inngangsstørrelsen. Det går raskt ut av kontroll da inngangsstørrelsen øker.

→ Logaritmisk Tid (O (log n)) :-

en vanlig algoritme Med O (log n) tidskompleksitet er Binært Søk hvis rekursive forhold Er T (n / 2) + O (1) dvs. på hvert etterfølgende nivå av treet deler du problemet i halv og gjør konstant mengde ekstra arbeid.

→ Quasilinear Tid (O (n logg n)) :-

en algoritme sies å kjøre i kvasilinær tid(også referert til som log-lineær tid) hvis T(n) = O (n log^k n) for noen positiv konstant k; linearitmisk tid er tilfellet k = 1.

Eksempel :

Datastruktur Er en systematisk måte å organisere data på for å kunne bruke dem effektivt. Følgende vilkår er grunnlaget for en datastruktur.

  • Grensesnitt – hver datastruktur har et grensesnitt. Interface representerer settet med operasjoner som en datastruktur støtter. Et grensesnitt gir bare listen over støttede operasjoner, type parametere de kan godta og returnere typen av disse operasjonene.
  • Implementering-Implementering gir den interne representasjonen av en datastruktur. Implementering gir også definisjonen av algoritmer som brukes i driften av datastrukturen.

→ Kjennetegn ved En Datastruktur :

  • Korrekthet – datastruktur implementering bør implementere grensesnittet riktig.
  • Tidskompleksitet-Kjøretid eller utførelsestid for operasjoner av datastruktur må være så liten som mulig.
  • Plass Kompleksitet-Minnebruk av en datastruktur operasjon bør være så lite som mulig.

→ Behov For Datastruktur :

ettersom applikasjoner blir komplekse og datarike, er det tre vanlige problemer som applikasjoner står overfor nå-en-dager.

  1. Datasøk-Vurder en oversikt over 1 million (106) elementer i en butikk. Hvis programmet er å søke et element, har det å søke et element i 1 million (106) elementer hver gang bremse ned søket. Som data vokser, vil søket bli tregere.
  2. Prosessorhastighet − Prosessorhastigheten selv om Den er veldig høy, faller begrenset hvis dataene vokser til milliarder poster.
  3. Flere Forespørsler-som tusenvis av brukere kan søke data samtidig på en webserver, mislykkes selv den raske serveren mens du søker dataene.

for å løse de ovennevnte problemene, kommer datastrukturer til redning. Data kan organiseres i en datastruktur på en slik måte at alle elementer ikke kan kreves å bli søkt, og de nødvendige dataene kan søkes nesten umiddelbart.

→ La oss se En Stack wrapper i swift:

vi lager en wrapper rundt swifts array, hvor vi bruker arrayet som en lagringsstruktur. Arrays gir konstant tid (O (1)) innsettinger og slettinger nar de utfores fra slutten av arrayet.

DET Er FIFO → Først Inn Først Ut Data.

Eksempler i iOS : UINavigation Stabel, Angre funksjonalitet, etc.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.