Sobes.tech
Junior — Middle

Чӣ гуна иҷрои ҷустуҷӯи унсури бо калид бо мушкилоти вақти O(n)?

sobes.tech AI

Ҷавоб аз AI

Ҷустуҷӯи унсури бо калид бо мушкилоти вақти O(n) маънои онро дорад, ки алгоритм унсурҳоро ба таври пайдарпай мегузарад, то он ки унсури лозимро ёбад.

Дар C# ин метавонад, масалан, бо гузаронидани унсурҳои массив ё рӯйхат амалӣ карда шавад:

int FindIndexByKey(List<KeyValuePair<int, string>> list, int key) {
    for (int i = 0; i < list.Count; i++) {
        if (list[i].Key == key) {
            return i; // индекс ёфта шуд
        }
    }
    return -1; // ёфт нашуд
}

Инҷо, ҷустуҷӯ дар ҳама унсурҳои рӯйхат сурат мегирад, ки ба O(n) мувофиқат мекунад. Ин усул вақте истифода мешавад, ки структураҳои маълумоти индексӣ (масалан, луғатҳо) вуҷуд надошта бошанд ё вақте маълумотҳо ба тартиб дароварда нашудаанд.