Taula de continguts:

Kit Ciencia Y Arte: Ordenando Listas (Bubble Sort): 4 Passos
Kit Ciencia Y Arte: Ordenando Listas (Bubble Sort): 4 Passos

Vídeo: Kit Ciencia Y Arte: Ordenando Listas (Bubble Sort): 4 Passos

Vídeo: Kit Ciencia Y Arte: Ordenando Listas (Bubble Sort): 4 Passos
Vídeo: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Juny
Anonim
Kit Ciencia Y Arte: Ordenando Listas (Bubble Sort)
Kit Ciencia Y Arte: Ordenando Listas (Bubble Sort)

En el món de les ciències de la computació, saber ordenar llistes és com saber escriure. És una bona manera de veure com els algoritmes son una manera de fer les coses en una computadora, i que la forma directa de fer alguna cosa no és la millor en una computadora. Acá explico uno de los algoritmos más cnocidos de comutación que es el "Bubble Sort", i explicaré amb detalls en què consisteix

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 …

Pas 1: Ordenar llistes?

¿Ordenar Llistes?
¿Ordenar Llistes?

Hoy en día usamos la computadora en totes les coses. Els telèfons avui en dia son pràcticament super computadores. Mientras las computadoras toman datos, se construyen listas de datos. Una llista de dades és un conjunt de dades com a aquest:

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

Es una lista de nombres. Ahora bé, en moltes ocasions, necessitem ordenar-los, és dir acomodar la llista en un ordre particular, per exemple d’alcalde a menor o viceversa, o en ordre alfabètic.

¿Porqué ordenarlos? Veamos l'exemple de la llista de noms de la imatge. És una llista llarga, si els pido busquen el nombre IRENE, en quina llista és més fàcil? en la ¿ordenada verdad? bueno per eso mismo ordenar listas de datos es algo extremadamente importante en una computadora, per després poder utilitzar els dades de forma efectiva.

¿Cómo los ordeno? passem al següent pas

Pas 2: Algoritme "Bubble Sort" Ordenament de Burbuja

Image
Image

Si tinc una llista de números, o nombres, ¿Cómo las puedo ordenar? Existeixen moltes maneres de fer-ho, t’aconseguiré explicar la que es diu "Bubble Sort", no és de les més ràpides, de fet pot fer que el mar de les penes, però si és un bon exemple de com una idea s’escriu com un algoritmo, y luego se escribe como un programa de computadora. A més, creo que tinc super bonit al circuit playground.

La Idea

La idea del Bubble Sort, és la de burbujas flotant, si ha dos burbujas i una és més gran que l’altra, la més liviana passa a la més pesada, i així es van acomodar … és molt similar a tenir una caixa de pedres de diferents 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. Tenim una llista de 1 a n elements
  2. Comenzar per el 1
  3. Preguntar si el número en la posició actual és major que la de la posició següent
  4. Si és major canviar-los, sinó, deixar-los iguals
  5. Moure una posició
  6. Si és el n, llavors marcar n-1 cómo el último y volver a 2
  7. Sino, Volver a 3
  8. Si el marcat com a últim és igual al primer, llavors es termina

En Acció

Com vénen a vegades escriure un algoritme és alguna cosa confús, per això es veu el vídeo explícit qual és el concepte i el funcionament detràs de l’algoritme amb un exemple senzill.

Pas 3: Parc infantil El Algoritmo en El Circuit

El Codi bàsic

Veamos primer una versió de l’algoritme, sense agregar-vos res de luces o sonit:

byte numbers [9]; // Arreglo que contiene los numeros

int i, j; // Iteradores

// Algoritmo bubbleSort

bucle buit () {for (i = 0; i <= 9; i ++) {for (j = 0; j <= 9 - i; j ++) {if (números [j] <= números [j + 1]) {// cambia posición de números float f = numbers [j]; nombres [j] = nombres [j + 1]; nombres [j + 1] = f; }}}}

Com primerament es crea un arregle de byte, en aquest cas, anomenem números [9]. És un arxiu de 10 números (de 0 a 9), de número tipus byte. Tambi'en creamos dos iteradores i y j. Estos son los que vana recorrer el arreglo.

En el bucle principal, vean la línia:

for (i = 0; i <= 9; i ++) {for (j = 0; j <= 9 - i; j ++) {}}

Que i recorre tot el regle de 0 a 9. Dentro de esta j, noten com va de 0 a 9-i. Es dir, primer va de 0 a 9, després de 0 a 9-1, després de 0 a 9-2. Això perquè com es veu en el vídeo, per cada iteració sabem que l'últim número ja és el major.

Dentro de esos iteradores, fa la pregunta:

if (números [j] <= números [j + 1])

Es dir si el següent és menor o igualment llavors hem de canviar. Per canviar-lo hi ha que fer un "swap" és dir prendre el valor de l'arregle, guardar-lo en una variable temporal, assignar-lo al nou valor, i després en temporal a la següent posició del règim. Vánlo en estas trés línies de codi:

flotador f = números [j]; // temporal

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

Descarrega el Circuit Playground

El codi complet en Github, inclou tot el necessari per generar un nou aleatori amb números de 0 a 255, i per utilitzar el nombre com a quantitat de vermell, per a rendir els LEDs. Ustedes lo can modificar para que haga más cosas como sonidos, etc.

Pas 4: Funcionant Y Reto

En el vídeo a més li va agradar el so, això es deixava de retre a ustedes.

Retos

  1. Afegir sonido
  2. Programar altres algoritmes d’ordenament (Ordre ràpid, Ordenació de combinació)
  3. Medir que tan ràpid resuelve e arduino, col·locant cada vegada més elements en l'arreglo i medir amb el cant tardà, ¿Es lineal?

Recomanat: