Sobes.tech
Junior — Middle

Melyik lehetőség a legjobb az elemek keresésére — tömb vagy halmaz (Set)?

sobes.tech MI

Válasz az MI-től

Az elemek keresésekor általában jobb a Set (Halmaz) használata, mint a tömb (Array). Ennek oka, hogy a halmaz egy olyan adatszerkezetet valósít meg, amely optimalizált a gyors keresésre: az elem hozzáadása, eltávolítása és létezésének ellenőrzése amortizált O(1) idő alatt történik. Míg egy tömbben egy elem keresése végig kell nézze az összes elemet (O(n)), ami kevésbé hatékony nagy adatmennyiség esetén.

Swift példában:

let array = [1, 2, 3, 4, 5]
let set: Set = [1, 2, 3, 4, 5]

// Keresés tömbben
let containsInArray = array.contains(3) // O(n)

// Keresés halmazban
let containsInSet = set.contains(3) // O(1)

Így, ha a keresés sebessége és az elemek egyedisége fontos, akkor a Set használata a jobb választás.