สารบัญ:

Kit Ciencia Y Arte: Ordenando Listas (เรียงลำดับฟอง): 4 ขั้นตอน
Kit Ciencia Y Arte: Ordenando Listas (เรียงลำดับฟอง): 4 ขั้นตอน

วีดีโอ: Kit Ciencia Y Arte: Ordenando Listas (เรียงลำดับฟอง): 4 ขั้นตอน

วีดีโอ: Kit Ciencia Y Arte: Ordenando Listas (เรียงลำดับฟอง): 4 ขั้นตอน
วีดีโอ: ชุดเครื่องมือ Redux + RTK Query ฉบับสมบูรณ์สำหรับผู้เริ่มต้น | รีดักซ์ใน 2 ชั่วโมง! 2024, พฤศจิกายน
Anonim
Kit Ciencia Y Arte: Ordenando Listas (เรียงลำดับฟอง)
Kit Ciencia Y Arte: Ordenando Listas (เรียงลำดับฟอง)

En el mundo de las ciencias de la computación, กระบี่ออร์เดนาร์ listas es como saber escribir อยู่ที่ ทำงาน อยู่ใน 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", และคำอธิบายอื่นๆ

Este Instructable, พิจารณา 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…

ขั้นตอนที่ 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 lista de datos es un conjunto de datos como este:

{โทมัส อับราฮัม แคโรไลนา มาเทียส มาเรีย มาร์เซลา}

Es una lista de nombres. Ahora bien, en muchas ocasiones, necesitamos ordenarlos, es decir acomodar la lista en un orden dedicated, จากนายกเทศมนตรี a Menor o viceversa, o en orden alfabético

¿Porque ordenarlos? Veamos el ejemplo de la lista de nombres เดอลาอิมเมง Es una lista larga, si les pido busquen el nombre IRENE, en ¿cual lista es más fácil? en la ¿ordenada verdad? บัวโน 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? ปาเซโมส อัล ซิกิเอนเต ปาโซ

ขั้นตอนที่ 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, pero si es un buen ejemplo de como una idea algoritmo และ luego se escribe como un programa de computadora Además, creo que ve super bonito en el circuit สนามเด็กเล่น

ลาไอเดีย

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 de piedra una caja ที่แตกต่างกัน tamaños, si las sacudo por suficiente tiempo, las más pesadas se van al fondo y las livianas se quedan arriba.

เอล อัลกอริทโม

Los pasos del algoritmos ลูกชาย:

  1. Tenemos una lista de 1 n องค์ประกอบ
  2. Comenzar por el 1
  3. Preguntar si el número en la posición actual es นายกเทศมนตรี que el de la posición siguiente
  4. Si es นายกเทศมนตรี cambiarlos, sino, dejarlos igual
  5. Mover una posición
  6. Si es el n, entences 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, สถานีปลายทาง

En Acción

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

ขั้นตอนที่ 3: สนามเด็กเล่น El Algoritmo En El Circuit

El Código básico

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

จำนวนไบต์[9];//Arreglo que contiene los numeros

int i, j;//Iteradores

//Algoritmo bubbleSort

void loop() { สำหรับ (i = 0; i <= 9; i++) { สำหรับ (j = 0; j <= 9 - i; j++) { if (numbers[j] <= numbers[j + 1]) { // cambia posición de números float f = ตัวเลข[j]; ตัวเลข[j] = ตัวเลข[j + 1]; ตัวเลข[j + 1] = f; } } } }

Como ven primero creamos un arreglo de byte, en este caso lo llamamos ตัวเลข[9]. Es un arreglo ของ 10 ตัวเลข (de 0 a 9), de numero tipo byte. Tambi'en creamos dos iteradores และ j. Estos son los que vana recorrer el arreglo

En el loop หลัก, vean las línea:

สำหรับ (i = 0; i <= 9; i++){ สำหรับ (j = 0; j <= 9 - i; j++) { } }

Que ฉัน recorre สิ่งที่ต้องทำ 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 วิดีโอ, por cada iteración sabemos que el ultimo numero ya es el mayor.

Dentro เดอ esos iteradores, se hace la pregunta:

ถ้า (ตัวเลข[j] <= ตัวเลข[j + 1])

Es decir si el siguiente es menor หรือ igual entences debemos cambiarlo Para cambiarlo hay que hacer un "swap" es decir tomar el valor del arreglo, guardarlo en una variable temporal, กำหนดสิทธิ์ 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 = ตัวเลข[j]; //ชั่วคราว

ตัวเลข[j] = ตัวเลข[j + 1]; ตัวเลข[j + 1] = f;

Descargar el Circuit Playground

รวมทั้งหมดบน Github, รวมสิ่งที่ต้องทำ lo necesario para generar un nuevo arreglo aleatorio con números 0 a 255, และ para usar el numero como cantidad de rojo, para prender los LEDs. Ustedes lo pueden modificar para que haga más cosas como sonidos ฯลฯ

ขั้นตอนที่ 4: Funcinando Y Reto

เกี่ยวกับวิดีโอ además le agregué sonido, eso se los dejo de reto a ustedes

Retos

  1. ตกลง sonido
  2. โปรแกรม otros algoritmos de ordenamiento (การเรียงลำดับด่วน, การเรียงลำดับผสาน)
  3. Medir que tan rápido resuelve e arduino, colocando cada vez más elementos en el arreglo y medir cuanto tarda, ¿Es lineal?

แนะนำ: