Turinys:

„Ciencia Y Arte“rinkinys: „Ordenando Listas“(„Bubble Rūšiuoti“): 4 žingsniai
„Ciencia Y Arte“rinkinys: „Ordenando Listas“(„Bubble Rūšiuoti“): 4 žingsniai

Video: „Ciencia Y Arte“rinkinys: „Ordenando Listas“(„Bubble Rūšiuoti“): 4 žingsniai

Video: „Ciencia Y Arte“rinkinys: „Ordenando Listas“(„Bubble Rūšiuoti“): 4 žingsniai
Video: CS50 2013 - Week 4 2024, Lapkritis
Anonim
„Ciencia Y Arte“rinkinys: „Ordenando Listas“(„Bubble Sort“)
„Ciencia Y Arte“rinkinys: „Ordenando Listas“(„Bubble Sort“)

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. Išsamiai paaiškinkite, kad algoritmas yra kitas „cubcidos de comutación que es el“„Bubble Sort“, o tai aiškinama išsamiai

Este Instructable, atsižvelgiant į que es AVANZADO, bet ne šienas nada como los retos difíciles, así que si no eres experto o experta no importa, haz el intento igual…

1 žingsnis: „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 data, se konstruktyvus duomenų sąrašas. Nėra duomenų sąrašo ir jungtinio duomenų:

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

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

¿Porqué ordenarlos? Veamos el ejemplo de la list de nombres de la imagen. Es una list larga, si les pido busquen el nombre IRENE, en ¿cual list es es fácil? 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

2 žingsnis: Algoritmo „burbulų rūšiavimas“Ordenamiento De Burbuja

Image
Image

Si tengo una list de números, o nombres, ¿Cómo las puedo ordenar? Existen muchas maneras de hacerlo, acá les voy a explicar la que se lalama "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 algoritmas, o taip pat parašykite komo ir programos programą. „Además“, „creo que“ir „super bonito en el circuit“žaidimų aikštelė.

La Idėja

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 Algoritmas

Sūnaus algoritmas:

  1. Tenemos una list of 1 and n elementos
  2. Comenzar por el 1
  3. Preguntar si el número en la posición faktinis es meras que el de la posición siguiente
  4. Tai meras 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, Volveris ir 3
  8. Si el marcado como último es igual al primero, entonces terminalas

En Acción

Como ven a veces escribir un algoritmo es algo confuso, por eso vean el video explico cual es el conceptto and funcionamiento detrás del algoritmo con un ejemplo sencillo.

3 žingsnis: „El Algoritmo En El Circuit“žaidimų aikštelė

El Código básico

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

baitų skaičiai [9]; // Arreglo que contiene los numeros

int i, j; // Iteradores

// Algoritmo burbulasRūšiuoti

void loop () {for (i = 0; i <= 9; i ++) {for (j = 0; j <= 9 - i; j ++) {if (skaičiai [j] <= skaičiai [j+1]) {// cambia posición de números float f = skaičiai [j]; skaičiai [j] = skaičiai [j + 1]; skaičiai [j + 1] = f; }}}}

Como ven primero creamos un arreglo de byte, en este caso lo llamamos number [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 principas, vean las línea:

(i = 0; i <= 9; i ++) {už (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 number ya es el mero.

Dentro de esos iteradores, se hace la pregunta:

jei (skaičiai [j] <= skaičiai [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 unable variable time, asignárle el nuevo valor, y luego en temporal al la siguiente posició del arreglo. Vánlo en estas trés líneas de código:

plūdė f = skaičiai [j]; //laiko

skaičiai [j] = skaičiai [j + 1]; skaičiai [j + 1] = f;

Parsisiųsti žaidimo aikštelę el Circuit

Visą „Github“kodą, įskaitant generatorių ir naują arreglo aleatorio con números de 0 a 255, y para usar el number como cantidad de rojo, para prender los LEDs. Ustedes lo pueden modificar para que haga más cosas como sonidos, etc.

4 žingsnis: „Funcionando Y Reto“

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

Retos

  1. Sutinku sonido
  2. Programinis otros algoritmas de ordenamiento (greitas rūšiavimas, sujungimo rūšiavimas)
  3. Medir que tan rápido resuelve e arduino, colocando cada vez más elementos en el arreglo y medir cuanto tarda, ¿Es lineal?

Rekomenduojamas: