est cette recherche binaire de la liste triée va être plus rapide si nous passons une tranche de liste au lieu de la liste, où la liste a des millions d'articles?liste passage de recherche binaire tranche au lieu de la liste entière
normal:
def binary_search(data, target, low, high):
if low > high:
return False
else:
mid = (low + high) // 2
if target == data[mid]:
return True
elif target < data[mid]:
return binary_search(data, target, low, mid-1)
else:
return binary_search(data, target, mid+1, high)
Avec tranche de liste (je devais modifier un peu):
def binary_search(data, target, low, high):
if low > high:
return False
else:
mid = (low + high) // 2
if target == data[mid]:
return True
elif target < data[mid]:
return binary_search(data[low:mid-1], target, 0, mid)
else:
return binary_search(data[mid+1:high], target, 0, high-mid)
Je suis en train d'apprendre sur les algorithmes, donc je ne sais vraiment pas si cela est meilleure pratique ou non.
'données [x: y]' crée un nouvel objet 'list'; il ne renvoie pas de vue dans la liste existante. – chepner