Junior — Middle
Ako sa hodnotí časová zložitosť operácie vyhľadávania prvku podľa hodnoty v sekvencii typu slice?
sobes.tech AI
Odpoveď od AI
Časová zložitosť vyhľadávania prvku podľa hodnoty v reze (slice) v jazyku Go je O(n), kde n je počet prvkov v reze.
To je spôsobené tým, že reze je zoradená sekvencia prvkov bez indexovanej štruktúry pre rýchle vyhľadávanie. Aby ste našli prvok, musíte prejsť reze sekvenčne, porovnávajúc každý prvok s hľadanou hodnotou.
Príklad vyhľadávania prvku v reze:
func contains(slice []int, val int) bool {
for _, item := range slice {
if item == val {
return true
}
}
return false
}
Ak je potrebné rýchlejšie vyhľadávanie, je vhodné použiť dátové štruktúry s indexovaným prístupom, napríklad mapu (map).