Оглавление:

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 шага
Видео: CS50 2013 - Week 4 2024, Июль
Anonim
Kit Ciencia Y Arte: Ordenando Listas (пузырьковая сортировка)
Kit Ciencia Y Arte: Ordenando Listas (пузырьковая сортировка)

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 direct 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 consiste

Este Instructable, внимательное отношение к 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?

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 connected data como este:

{Томас, Авраам Каролина, Матиас, Мария, Марсела}

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

¿Porqué ordenarlos? Veamos el ejemplo de la lista de nombres de la images. 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 important en una computadora, pera luego poder usar los datos de forma efectiva.

¿Cómo los ordeno? Pasemos al Siguiente Paso

Шаг 2: Алгоритм "пузырьковой сортировки" 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 se escribe como un алгоритм, вы можете написать как программу вычислений. Адемас, Creo que ve super bonito en el круговая игровая площадка.

La Idea

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

Эль-Алгоритмо

Лос-пасос-дель-альгоритмос, сын:

  1. Tenemos una lista de 1 a n elementos
  2. Comenzar por 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. Mover una posición
  6. Si es el n, entonces marcar n-1 cómo el último y volver a 2
  7. Сино, Волвер а 3
  8. Si el marcado como último es igual al primero, entonces terminar

En Acción

Como ven a veces escribir un algoritmo es algo confuso, por eso vean el video explico cual es el concept y Funcionamiento detras 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 comparegarla nada de luces o sonido:

байтовые числа [9]; // Arreglo que contiene los numeros

int i, j; // Итераторы

// Алгоритм пузырьковой сортировки

void loop () {for (i = 0; i <= 9; i ++) {for (j = 0; j <= 9 - i; j ++) {if (numbers [j] <= numbers [j + 1]) {// cambia posición de números float f = numbers [j]; числа [j] = числа [j + 1]; числа [j + 1] = f; }}}}

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

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

Que i recordre 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 seve en el video, por cada iteración sabemos que el ultimo numero ya es el mayor.

Dentro de esos iteradores, se hace la pregunta:

если (числа [j] <= числа [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 = числа [j]; // временный

числа [j] = числа [j + 1]; числа [j + 1] = f;

Скачать el Circuit Playground

Полный код на Github, включает в себя все необходимое для генерации новых источников света с номерами 0 и 255, которые используются для использования цифровых номеров в родных каналах, а также для светодиодов. Ustedes lo pueden modificar para que haga más cosas como sonidos и т. Д.

Шаг 4: Funcionando Y Reto

En el video además le соглашение sonido, eso se los dejo de reto a ustedes.

Retos

  1. Агрегар сонидо
  2. Programar 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?

Рекомендуемые: