Daftar Isi:

Kit Ciencia Y Arte: Ordenando Listas (Urutan Gelembung): 4 Langkah
Kit Ciencia Y Arte: Ordenando Listas (Urutan Gelembung): 4 Langkah

Video: Kit Ciencia Y Arte: Ordenando Listas (Urutan Gelembung): 4 Langkah

Video: Kit Ciencia Y Arte: Ordenando Listas (Urutan Gelembung): 4 Langkah
Video: ZONE 4 OPENING! ALL SERVERS AT WAR! Covering BDO/NOIR/TFS/TA/GG/SK/EiS & MORE! 2024, November
Anonim
Kit Ciencia Y Arte: Ordenando Listas (Urutan Gelembung)
Kit Ciencia Y Arte: Ordenando Listas (Urutan Gelembung)

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", y explicaré con detalle en que terdiri

Este Instructable, mempertimbangkan 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…

Langkah 1: Daftar Ordenar?

Daftar Ordenar?
Daftar Ordenar?

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 de datos es un conjunto de datos como este:

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

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

Porque 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 lista es más 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.

Como los ordeno? pasemos al siguiente paso

Langkah 2: Algoritma "Urutan Gelembung" 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, pero si es un buen ejemplo de como una ide se escribe como un algoritme, y luego se escribe como un programa de computadora. Además, taman bermain sirkuit creo que ve super bonito en el.

La Ide

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 de muy a tener una caja de piedras diferentes tamaños, si las sacudo por suficiente tiempo, las más pesadas se van al fondo y las livianas se quedan arriba.

El Algoritma

Los pasos del algoritmos putra:

  1. Tenemos una lista de 1 a n elementos
  2. Komentar untuk el 1
  3. Preguntar si el número en la posición actual es mayor que el de la posición siguiente
  4. Si es mayor cambiarlos, sino, dejarlos igual
  5. Penggerak tanpa posisi
  6. Si es el n, mengaktifkan 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, mengaktifkan terminal

En Accion

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.

Langkah 3: El Algoritmo En El Circuit Playground

El Código dasar

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

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

int i, j;//Iteradores

//Algoritma bubbleSort

void loop() { for (i = 0; i <= 9; i++) { for (j = 0; j <= 9 - i; j++) { if (angka[j] <= angka[j + 1]) { //cambia posición de números float f = angka[j]; angka[j] = angka[j + 1]; angka[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 prinsipal, vean las línea:

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

Que i recorre todo el arreglo de 0 a 9. Dentro de esta j, note 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 (angka[j] <= angka[j + 1])

Es decir si el siguiente es menor o igual entonces debemos cambiarlo. Untuk 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 = angka[j]; //sementara

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

Descargar el Circuit Playground

Lengkapi Github, termasuk untuk melakukan hal-hal yang diperlukan untuk umum dan lengkap untuk 0 a 255, y untuk pengguna dengan jumlah besar dan lengkap, untuk prender los LED. Ustedes lo pueden modificar para que haga más cosas como sonidos, dll.

Langkah 4: Funcionando Y Reto

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

Reto

  1. Agregar sonido
  2. Programar otros algoritmos de ordenamiento (Penyortiran Cepat, Pengurutan Gabung)
  3. Medir que tan rápido resuelve e arduino, colocando cada vez más elementos en el arreglo y medir cuanto tarda, Es lineal?

Direkomendasikan: