Justo estoy haciendo un ejercicio sobre este algoritmo y no tiene mucho que acabas de subir la explicación. Gracias master 🤙🏼
@erickutreracornejo7944 Жыл бұрын
Excelente explicación
@robertoaraiza7434 Жыл бұрын
excelente!
@Maximiliano.R Жыл бұрын
Hola como estas!? vos sabes que quise agregar este video a mi lista de reproduccion de youtube y no me aparece la opcion. por que sera?
@jsierra88 Жыл бұрын
Super interesante este canal! Cómo sería si queremos tener claves únicas? Podemos extender el algoritmo para hacer un merge de los duplicados?
@ChioCode Жыл бұрын
Lo que se me ocurre es al principio del algoritmo, cuando estamos contando las instancias de cada número, si nos topamos con los repetidos, simplemente no agregarlo a la cuenta, pero definitivamente me faltan detalles por ahí :)
@juanproMC2 жыл бұрын
(No hate) Porfa haz un video de punteros en C me urge para poder resolver problemas complicados de programación y a casi ningún tutorial le agarro porfa
@marcourielzambranovaldez51362 жыл бұрын
Entendi en minutos lo que no entendi en 2 horas de clase, ahora solo me falta saber como se ordena de mayor a menor
@Rotsen44 Жыл бұрын
reverse al final
@Uzbekistonim32 Жыл бұрын
👍
@kascesar2 жыл бұрын
Lo hice para números negativos, pero creo que se puede mejorar ``` import numpy as np def find_low(x, arr, minim): if x < minim or x is None: return None num = arr.get(x - 1) if not (num is None): return x - 1 else: return find_low(x - 1, arr, minim) def countingSort(numbers): minim = min(numbers) maxim = max(numbers) ordering = np.zeros(numbers.shape, dtype=int) print(f' * Numbers : {numbers}') print(f' * lower : {minim}') print(f' * upper : {maxim}') asd = {} for num in numbers: asd[num] = asd.get(num, 0) + 1 for num in np.arange(minim + 1, maxim + 1): up = asd.get(num) if not up is None: low = find_low(num, asd, minim) asd[num] = asd[low] + asd[num] for num in numbers: idx = asd[num] asd[num] -= 1 ordering[idx - 1] = num return list(ordering) numbers = np.random.randint(-10, 10, 10) print(f' * Ordered : {countingSort(numbers)}') ```
@kascesar2 жыл бұрын
Aquí la versión corta para números negativos y el cero import numpy as np def countingSort(numbers): minim = min(numbers) maxim = max(numbers) ordering = np.zeros(numbers.shape, dtype=int) print(f' * Numbers : {numbers}') print(f' * lower : {minim}') print(f' * upper : {maxim}') asd = {} for num in numbers: asd[num] = asd.get(num, 0) + 1 for num in np.arange(minim, maxim + 1): up = asd.get(num) if up is None: asd[num] = 0 for num in np.arange(minim + 1, maxim + 1): up = asd[num] asd[num] = asd[num - 1] + asd[num] for num in numbers: idx = asd[num] asd[num] -= 1 ordering[idx - 1] = num return list(ordering) numbers = np.random.randint(-10, 10, 10) print(f' * Ordered : {countingSort(numbers)}')