جدول المحتويات:

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 خطوات
فيديو: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, شهر نوفمبر
Anonim
Kit Ciencia Y Arte: Ordenando Listas (تصنيف الفقاعة)
Kit Ciencia Y Arte: Ordenando Listas (تصنيف الفقاعة)

En el mundo de las ciencias de la computación، sabre ordenar listas es como sabre 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 include

Este Instructable، Thinkaría que es AVANZADO، pero no hay nada como los retos difíciles، así que si no eres Experto no importa، haz el intento igual …

الخطوة 1: ¿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، por ejemplo de mayor a menor o viceversa، o en orden alfabético.

¿بوركي أوردينارلوس؟ 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؟ من الممكن أن تكون قائمة البيانات حسب البيانات المتطرفة المهمة في الكمبيوتر ، في حالة استخدام الكمبيوتر الشخصي.

¿Cómo los ordeno؟ pasemos al siguiente paso

الخطوة 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 se escribe como un algoritmo، y luego se escribe como un programa de computadora. Además، creo que ve super bonito en el قلب الملعب.

لا فكرة

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 مماثلة لـ tener una caja de piedras de ديفيرينتيس تامانيوس ، سي لاس كودو بور سفيكونسي تييمبو ، لاس ماس بيساداس سي فان أل فوندو واي لاس ليفياناس سي كويدان أريبا.

El Algoritmo

ابن لوس باسو ديل ألغوريتموس:

  1. Tenemos una lista de 1 a n elementos
  2. كومينزار بور إل 1
  3. Preguntar si el número en la posición الفعلين عمدة que el de la posición siguiente
  4. Si es Mayor cambiarlos، sino، dejarlos igual
  5. محرك في مكانة
  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 concepto y funcionamiento detrás del algoritmo con un ejemplo sencillo.

الخطوة الثالثة: ملعب El Algoritmo En El Circuit

El Código básico

Veamos primero una versión del algoritmo، sin apprgarla nada de luces o sonido:

أرقام البايت [9] ؛ // Arreglo que contiene los numeros

int أنا ، ي ؛ // Iteradores

// Algoritmo BubbleSort

حلقة باطلة () {for (i = 0؛ i <= 9؛ i ++) {for (j = 0؛ j <= 9 - i؛ j ++) {if (أرقام [j] <= أرقام [j + 1]) {// cambia posición de números float f = أرقام [j] ؛ أرقام [j] = أرقام [j + 1] ؛ أرقام [j + 1] = و ؛ }}}}

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. إستوس ابن لوس كيو فانا ريكورر إل أريجلو.

مدرسة En el loop ، vean las línea:

لـ (i = 0؛ i <= 9؛ i ++) {لـ (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 numero ya es el mayor.

Dentro de esos iteradores، se hace la pregunta:

إذا (أرقام [ي] <= أرقام [ي + 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:

تعويم f = أرقام [j] ؛ //زمني

أرقام [j] = أرقام [j + 1] ؛ أرقام [j + 1] = و ؛

Descargar el Circuit Playground

El código completeo en Github، incluye todo lo necesario para generar un nuevo arreglo aleatorio con números de 0 a 255، y 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: Funcionando Y Reto

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

ريتوس

  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؟

موصى به: