Sobes.tech
Junior

Qual è la complessità di cercare un elemento in un array in Swift?

sobes.tech AI

Risposta dell'AI

La complessità di cercare un elemento in un array non ordinato tipico (ad esempio, Array<Element>) in Swift è O(n), dove n è il numero di elementi nell'array. Questo perché, nel peggiore dei casi, potrebbe essere necessario scorrere tutti gli elementi dell'array per trovare l'elemento.

Tuttavia, se l'array è ordinato, si può usare la ricerca binaria, che ha una complessità di O(log n). Swift fornisce il metodo binarySearch per le collezioni ordinate.

Esempio di ricerca lineare:

let array = [1, 5, 2, 8, 3]
let elementToFind = 8

for element in array {
    if element == elementToFind {
        // Elemento trovato
        break
    }
}

Esempio di ricerca binaria in un array ordinato:

let sortedArray = [1, 2, 3, 5, 8]
let elementToFind = 5

if let index = sortedArray.firstIndex(where: { $0 == elementToFind }) {
    // Elemento trovato all'indice
}