Leela Krishna
Leela Krishna

kövesse

ápr 1, 2019 * 4 perc olvasás

swift programozási nyelven …

rész -1:

miért adatstruktúrák?

a modern alkalmazások létrehozásakor az algoritmusokban rejlő elmélet nagy részét gyakran figyelmen kívül hagyják. A viszonylag kis mennyiségű adatot fogyasztó megoldások esetében a konkrét technikákkal vagy tervezési mintákkal kapcsolatos döntések nem feltétlenül fontosak, mivel csak a dolgok működnek. A közönség növekedésével azonban az adatok is növekedni fognak. A nagy technológiai vállalatok sikerének nagy része az örökös képessége hatalmas mennyiségű adat értelmezésére. Az adatok értelme lehetővé teszi a felhasználók számára, hogy csatlakozzanak, megosszák, tranzakciókat hajtsanak végre és döntéseket hozzanak.

Adatszerkezetek :

  • alapvető(elemi) adatstruktúrák

verem, sor, rendezési algoritmusok

  • fák

fák & bináris fák, bináris keresés, halom, halom Rendezés, prioritási sor

  • grafikonok

gráfok, szomszédsági lista, Dijkstra algoritmusa, prim algoritmusa

nagy O kottázás :

az aszimptotikus analízis az algoritmusok hatékonyságának leírására szolgáló folyamat, amelyet általában a Big O kottázás néven ismert közös formátumban fejeznek ki.

  • Idő Bonyolultsága :

az algoritmus(függvény) befejezéséhez szükséges idő mennyisége a bemeneti méret(n) növekedésével.

  • a tér bonyolultsága :

az algoritmus (függvény) futtatásához szükséges memória(hely) mennyisége.

mindkettő nagy O jelöléssel fejezhető ki.

  • a leggyakoribb Időbonyolultságok :

→ állandó idő (O(1)) :-

az állandó idő algoritmus az, amelynek bemenetétől függetlenül ugyanaz a futási ideje. A nagy O jelölés erre az O(1).

ons lineáris idő (O (n)) :-

lineáris idő algoritmus, amelynek sebessége a bemeneti méretétől függ. Más szavakkal, a bemeneti méret(n) növekedésével kevésbé hatékony.

délután (O (n2)) :-

olyan algoritmusra utal, amely a bemeneti méret négyzetével arányos időt vesz igénybe. A bemeneti méret növekedésével gyorsan elfogy az ellenőrzés.

logaritmikus idő (o(log n)) :-

az O(log n) idő komplexitású közös algoritmus a bináris keresés, amelynek rekurzív relációja T(n/2) + O(1), azaz a fa minden további szintjén a problémát felére osztja, és állandó mennyiségű kiegészítő munkát végez.

naplóidő (O (n log n)) :-

azt mondják, hogy egy algoritmus kvazilineáris időben fut (más néven log-lineáris idő), Ha T(n) = O(n log^k n) valamilyen pozitív állandóra k; linearitmikus idő a helyzet k = 1.

példa :

az adatstruktúra az adatok rendszerezésének szisztematikus módja annak hatékony felhasználása érdekében. A következő kifejezések az adatstruktúra alapfeltételei.

  • interfész − minden adatstruktúrának van interfésze. Az interfész az adatstruktúra által támogatott műveletek halmazát jelenti. Az interfész csak a támogatott műveletek listáját, az elfogadható paraméterek típusát és a műveletek visszatérési típusát adja meg.
  • megvalósítás − a megvalósítás biztosítja az adatstruktúra belső ábrázolását. A megvalósítás az adatszerkezet műveleteiben használt algoritmusok meghatározását is biztosítja.

→ az adatszerkezet jellemzői:

  • helyesség-az adatstruktúra megvalósításának helyesen kell végrehajtania az interfészt.
  • idő komplexitás − a futási időnek vagy az adatszerkezet műveleteinek végrehajtási idejének a lehető legkisebbnek kell lennie.
  • tér komplexitás − az adatstruktúra művelet memóriahasználatának a lehető legkisebbnek kell lennie.

→ adatstruktúra szükségessége:

mivel az alkalmazások összetettek és adatgazdagok, három gyakori probléma van, amelyekkel az alkalmazások naponta szembesülnek.

  1. adatkeresés − fontolja meg egy áruház 1 millió(106) tételének leltárát. Ha az alkalmazás keresni egy elemet, meg kell keresni egy elemet 1 millió(106) tételek minden alkalommal lassítja a keresést. Az adatok növekedésével a keresés lassabb lesz.
  2. processzor sebessége − a processzor sebessége, bár nagyon magas, korlátozott, ha az adatok milliárd rekordra nőnek.
  3. több kérés − mivel több ezer felhasználó kereshet adatokat egyszerre egy webszerveren, még a gyors szerver is meghibásodik az adatok keresése közben.

a fent említett problémák megoldásához az adatstruktúrák megmentésre kerülnek. Az adatok egy adatstruktúrába rendezhetők úgy, hogy az összes tételt nem kell keresni, a szükséges adatok pedig szinte azonnal kereshetők.

nézzünk meg egy Veremcsomagolót a swift-ben:

a swift-tömb köré egy burkolót hozunk létre, ahol a tömböt tároló szerkezetként használjuk. A tömbök állandó időt (O(1)) adnak be és törölnek, amikor a tömb végéről hajtják végre őket.

ez a FIFO (FIFO) számú adat.

példák az iOS-ben : Uinavigációs verem, funkciók visszavonása stb.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.