Având în vedere următoarea implementare a funcției în Python, explicați ce face și cum funcționează.
def_căutare binară(arr, low, high, x):dacă este mare >= low:    mid = (high + low) // 2    dacă arr[mid] == x:        returnare memento        elif arr[mid] > x:        returnare căutare_binară(arr, low, mid - 1, x)    altfel:        returnare binary_search(arr, mid + 1, high, x)else:    returnare -1
Funcția 'binary_search' caută un element 'x' într-o matrice sortată 'arr'. Folosește o strategie de împărțire și cucerire prin împărțirea recursivă a matricei 'arr' în subrețele mai mici și comparând elementul de mijloc cu 'x'. Dacă elementul din mijloc este egal cu „x”, este returnat indexul său; dacă este mai mare decât „x”, funcția își continuă căutarea în submatricea din stânga; dacă este mai mic, caută în submatricea din dreapta. Dacă nu se găsește 'x', funcția returnează -1.