Sommario:
- Passaggio 1: Ordinare le liste?
- Passaggio 2: Algoritmo "Bubble Sort" Ordenamiento De Burbuja
- Passaggio 3: parco giochi El Algoritmo En El Circuit
- Passaggio 4: funzionamento e ripristino
Video: Kit Scienza e Arte: Ordenando Listas (Bubble Sort): 4 Steps
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
En el mundo de las ciencias de la computación, saber ordenar listas es come saber escribir. Es una buena manera de ver como los algoritmos son una manera de hacer las cosas en una computadora, y que la forma directa de hacer algo no es la mejor en una computadora. Acá explico uno de los algoritmos más cnocidos de comutación que es el "Bubble Sort", y explicaré con detalle en que consiste
Este Instructable, consideraría que es AVANZADO, pero no hay nada como los retos difíciles, así que si no eres experto o experta no importa, haz el intento igual…
Passaggio 1: Ordinare le liste?
Hoy en día usamos la computadora en todas las cosas. Los teléfonos hoy en día son prácticamente super computadoras. Mientras las computadoras toman datos, se construyen listas de datos. Una lista di dati es un conjunto de dati come este:
{Tomas, Abraham Carolina, Matias, Maria, Marcela}
Es una lista di nomi. Ahora bien, en muchas ocasiones, necesitamos ordenarlos, es decir acomodar la lista en un orden particular, por ejemplo de mayor a menor o viceversa, o en orden alfabético.
¿Porqué ordenarlos? Veamos el ejemplo de la lista de nombres de la imagen. Es una lista larga, si les pido busquen el nombre IRENE, en ¿cual list es más fácil? en la ordenada verdad? bueno por eso mismo ordenar liste de dati es algo extremadamente importante en una computadora, pera luego poder usar los datas de forma efectiva.
Come los ordeno? pasemos al siguiente paso
Passaggio 2: Algoritmo "Bubble Sort" Ordenamiento De Burbuja
Si tengo una lista de números, o nombres, Cómo las puedo ordenar? Existen muchas maneras de hacerlo, acá les voy a explicar la que se llama "Bubble Sort", no es de las más rápidas, de hecho puede que sea de las peores, pero si es un buen ejemplo de como una idea se escribe como un algoritmo, y luego se escribe como un programa de computadora. Además, creo que ve super bonito en el circuit playground.
La Idea
La idea del Bubble Sort, es la de burbujas flotando, si ha dos burbujas y una es más grande que la otra, la más liviana pasa a la más pesada, y así se van acomodando… es muy similar a tener una caja de piedras de diferentes tamaños, si las sacudo por suficiente tiempo, las más pesadas se van al fondo y las livianas se quedan arriba.
El Algoritmo
Los pasos del algoritmos son:
- Tenemos una lista de 1 a n elementis
- Comenzar per el 1
- Preguntar si el número en la posición effettivo es sindaco que el de la posición siguiente
- Si es mayor cambiarlos, sino, dejarlos igual
- Sposta una posizione
- Si es el n, entonces marcar n-1 cómo el último y volver a 2
- Sino, Volver a 3
- Si el marcado como último es igual al primero, entonces terminar
In azione
Como ven a veces escribir un algoritmo es algo confuso, por eso vean el video explico cual es el concepto y funcionamiento detrás del algoritmo con un ejemplo sencillo.
Passaggio 3: parco giochi El Algoritmo En El Circuit
El Código basico
Veamos primero una versión del algoritmo, sin agregarla nada de luces o sonido:
byte numbers[9];//Arreglo que contiene los numeros
int i, j;//Iteradores
//Algoritmo bubbleSort
void loop() { for (i = 0; i <= 9; i++) { for (j = 0; j <= 9 - i; j++) { if (numeri[j] <= numeri[j + 1]) { //cambia posizione dei numeri float f = numeri[j]; numeri[j] = numeri[j + 1]; numeri[j + 1] = f; } } } }
Como ven primero creamos un arreglo de byte, en este caso lo llamamos numbers[9]. Es un arreglo de 10 números (de 0 a 9), de numero tipo byte. Tambi'en creamos dos iteradores i y j. Estos son los que vana recorrer el arreglo.
En el loop principal, vean las línea:
for (i = 0; i <= 9; i++){ for (j = 0; j <= 9 - i; j++) { } }
Que i recorre todo el arreglo de 0 a 9. Dentro de esta j, noten como va de 0 a 9-i. Es decir, primero va de 0 a 9, luego de 0 a 9-1, luego de 0 a 9-2. Esto porque como se ve en el video, por cada iteración sabemos que el ultimo numero ya es el mayor.
Dentro de esos iteradores, se hace la pregunta:
if (numeri[j] <= numeri[j + 1])
Es decir si el siguiente es menor o igual entonces debemos cambiarlo. Para cambiarlo hay que hacer un "swap" es decir tomar el valor del arreglo, guardarlo en una variable temporal, asignárle el nuevo valor, y luego en temporal al la siguiente posición del arreglo. Vánlo en estas tre linee di codice:
float f = numeri[j]; //temporale
numeri[j] = numeri[j + 1]; numeri[j + 1] = f;
Scarica il parco giochi del circuito
Il codice completo in Github, incluye todo lo necesario para generar un nuovo arreglo aleatorio con números de 0 a 255, y para usar el numero come cantidad de rojo, para prender los LEDs. Ustedes lo pueden modificar para que haga más cosas como sonidos, etc.
Passaggio 4: funzionamento e ripristino
En el video además le agregué sonido, eso se los dejo de reto a ustedes.
Retos
- Agregar sonido
- Programmare altri algoritmi di ordinamento (Quick Sort, Merge Sort)
- Medir que tan rápido resuelve e arduino, colocando cada vez más elementis en el arreglo y medir cuanto tarda, ¿Es lineal?
Consigliato:
Bubble Sort in batch!: 4 passaggi
Bubble Sort in batch!: ti sei mai chiesto come realizzare un semplice algoritmo di ordinamento in batch puro? Non preoccuparti, è semplice come una torta! Questo mostra anche il processo di ordinamento. (Nota: l'ho fatto su un computer Windows XP, quindi alcuni codici potrebbero non funzionare. Non ne sono sicuro. Mi dispiace…)
Kit Scienza e Arte: Cómo Cargar Código Al Parco giochi: 4 passaggi
Kit Scienza e Arte: Cómo Cargar Código Al Parco giochi: Acá spiega come se "sube" el código. EL código de cada proyecto está en cada instructable, sin embargo puede descargar todo el código en el GitHub
Kit Scienza e Arte: Máquinas Que Aprenden Sonido: 4 Steps
Kit Ciencia Y Arte: Máquinas Que Aprenden Sonido: Aprender de inteligencia artificial es mucho más fácil de lo que parece. El primer paso es entender el funcionamiento de una de las unidades más simples en programación, que por analogía con el cerebro humano, es l
Kit Scienza e Arte: Algoritmo Genetico (Vida Artificial): 6 Step
Kit Ciencia Y Arte: Algoritmo Genético (Vida Artificial): Los algoritmos genéticos son probablemente una de las cosas más interesantes de la computación (en mi opinión). Básicamente se toma la idea de evolución de la biología, y se aplica a un algoritmo en u
Kit Scienza Y Arte: Un Makey Makey a Otro Nivel: 4 passaggi (con immagini)
Kit Ciencia Y Arte: Un Makey Makey a Otro Nivel: El Makey Makey es un dispositivo electrónico molto popolare en educación, pues con el se pueden hacer rápidamente ejercicios de computación tangibile e interacción f& con computadoras.El Makey Makey, no es m