Innholdsfortegnelse:

Kit Ciencia Y Arte: Ordenando Listas (Boblesortering): 4 trinn
Kit Ciencia Y Arte: Ordenando Listas (Boblesortering): 4 trinn

Video: Kit Ciencia Y Arte: Ordenando Listas (Boblesortering): 4 trinn

Video: Kit Ciencia Y Arte: Ordenando Listas (Boblesortering): 4 trinn
Video: Programming - Computer Science for Business Leaders 2016 2024, November
Anonim
Kit Ciencia Y Arte: Ordenando Listas (Boblesortering)
Kit Ciencia Y Arte: Ordenando Listas (Boblesortering)

En el mundo de las ciencias de la computación, saber ordenar listas es como 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", and explicaré con detalle en que consiste

Este Instructable, consideraría que es AVANZADO, men no no hay como los retos dificiles, así que that no no arees experto o experta no importa, haz el intentiono igual …

Trinn 1: ¿Ordenar Listas?

¿Ordenar Listas?
¿Ordenar Listas?

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 liste over data er en konjunkto for data som inkluderer:

{Tomás, Abraham Carolina, Matias, Maria, Marcela}

Es una lista de nombres. Ahora bien, en muchas ocasiones, necesitamos ordenarlos, es decir acomodar la list en un orden particular, por ejemplo de mayor a menor o viceversa, o en orden alfabético.

¿Porqué ordenarlos? Vi kan ikke legge til en liste over de nominerte bildene. Er det en liste over store og små bokstaver i IRENE, og hvilken liste kan jeg få? en la ¿ordenada verdad? bueno por eso mismo ordenar listas de datos es algo extremadamente importante en una computadora, pera luego poder usar los datos de forma efectiva.

¿Cómo los ordeno? pasemos al siguiente paso

Trinn 2: Algoritmo "Bubble Sort" Ordenamiento De Burbuja

Image
Image

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, men det er en buen ejemplo de como una idé se escribe como un algoritmo, og du kan skrive et program for en datamaskin. Además, creo que ve super bonito en el circuit lekeplass.

La Idea

La idé 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:

  1. Tenemos una list de 1 a n elementos
  2. Comenzar av el 1
  3. Forrige side
  4. Si es mayor cambiarlos, sino, dejarlos igual
  5. Mover una posición
  6. Si es el n, entonces marcar n-1 cómo el último y volver a 2
  7. Sino, Volver a 3
  8. Si el marcado como último es igual al primero, entonces terminar

En Acción

Vi kan også beskrive en algoritme som kan forveksles med en videoeksplosjon som kan brukes til å utvikle en algoritme som kan brukes til å bruke et emne.

Trinn 3: El Algoritmo En El Circuit Playground

El Código básico

Veamos primero una versión del algoritmo, sin agregarla nada de luces o sonido:

byte tall [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 (tall [j] <= tall [j+1]) {// cambia posición de números float f = tall [j]; tall [j] = tall [j + 1]; tall [j + 1] = f; }}}}

Como ven primero creamos un arreglo de byte, en este caso lo llamamos numbers [9]. Det er en rekke 10 numre (fra 0 til 9), antall numeriske 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:

hvis (tall [j] <= tall [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 trés líneas de código:

float f = tall [j]; // tidsmessig

tall [j] = tall [j + 1]; tall [j + 1] = f;

Last ned el Circuit Playground

El código completeo in Github, incluye todo lo necesario para generar un nuevo arreglo aleatorio con números de 0 a 255, y para usar el numero como cantidad de rojo, for prender los LEDs. Ustedes lo pueden modificar para que haga más cosas como sonidos, etc.

Trinn 4: Funcionando Y Reto

En el video además le agregué sonido, eso se los dejo de reto a ustedes.

Retoer

  1. Agregar sonido
  2. Programar otros algoritmos de ordenamiento (Hurtigsortering, Slå sammen sortering)
  3. Medir que tan rápido resuelve e arduino, colocando cada vez más elementos en el arreglo y medir cuanto tarda, ¿Es lineal?

Anbefalt: