Velocidad
Estado
Pseudocódigo
Funcion entero binarySearch(entero arr[],entero dato) D.V. Definir menor como entero Definir mayor como entero Definir centro como entero Inicio menor <- 0 mayor <- tamaño(arr) - 1 Mientras (menor <= mayor) centro <- (menor + mayor)/2 FinMientras Si (arr[centro] == dato) entonces Devolver centro SiNo Si(arr[centro] < dato) entonces menor <- centro + 1 SiNo mayor <- centro - 1 FinSi FinSi Devolver -1 FinFuncion
Estado
Pseudocódigo
Funcion entero linearSearch(entero arr[],entero dato) D.V. Definir i como entero Inicio i <- 0 Mientras (i < tamaño(arr) y arr[i] !=dato) i <- i+1 FinMientras Si (i >= tamaño(arr)) entonces Devolver -1 FinSi Devolver i FinFuncion
Estado
Leyenda:
pivotLoc
Pivote
Buscando
Pseudocódigo
Funcion entero quickSelect(entero arr[],entero izquierda,entero derecha, entero k) D.V. Definir part como entero Inicio part <- particion(arr,izquierda,derecha) Si (part == k) entonces Devolver arr[part] SiNo Si (particion < k) entonces Devolver quickSelect(arr,part + 1,derecha,k) FinSi SiNo Devolver quickSelect(arr, izquierda,part - 1,k) FinSi FinFuncion Funcion entero particion(entero arr[],entero izquierda,entero derecha) D.V. Definir i como entero Definir pivote como entero Definir pivoteLoc como entero Definir aux como entero Definir aux2 como entero Inicio pivote <- arr[derecha] pivoteLoc <- izquierda Para i de izquierda hasta derecha con paso 1 Si (arr[i] <= pivote) entonces aux <- arr[i] arr[i] <- arr[pivoteLoc] arr[pivoteLoc] <- aux pivoteLoc <- pivoteLoc + 1 FinSi FinPara aux2 <- arr[derecha] arr[derecha] <- arr[pivoteLoc] arr[pivoteLoc] <- aux2 Devolver pivoteLoc FinFuncion