LinnesLab / Arduino-QuickSort

Librería para ordenación con algoritmo QuickSort en Arduino

Home Page:https://www.luisllamas.es/libreria-arduino-quicksort/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Librería Arduino QuickSort

Librería para Arduino que aplica el algoritmo QuickSort para ordenar un array en Arduino.
Más información https://www.luisllamas.es/libreria-arduino-quicksort/

Instrucciones de uso

La librería dispone de dos métodos estáticos para la ordenación de vectores. No es necesario, por tanto, instanciar un objeto.

La librería incorpora dos métodos estáticos para el calculo de QuickSort ascendente y descendente. Se usan templates para que funcionen con distintos tipos de variables (int, long, float…). La librería incorpora dos ejemplos, uno para int y otro para float.

Para la ordenación en sentido ascendente usaríamos el método SortAscending.

QuickSort::SortAscending(items, initItem, numItems);

Mientras que para la ordenación en sentido descendente usaríamos el método SortDescending.

QuickSort::SortDescending(items, initItem, numItems);

Ejemplos

La librería QuickSort incluye los siguientes ejemplos para ilustrar su uso.

  • QuickSortInt: Ejemplo de uso para variables integer.
#include "QuickSortLib.h"

int values100[] = { 3, 53, 70, 56, 18, 85, 27, 14, 37, 94, 9, 55, 40, 60, 52, 61, 15, 65, 13, 8, 57, 97, 69, 4, 35, 82, 22, 73, 59, 68, 78, 24, 21, 36, 71, 80, 74, 39, 17, 12, 29, 76, 49, 51, 30, 90, 88, 2, 84, 50, 62, 28, 77, 43, 5, 16, 58, 26, 32, 34, 1, 75, 66, 95, 38, 89, 67, 87, 100, 54, 92, 81, 25, 83, 46, 33, 23, 45, 96, 99, 79, 48, 11, 31, 7, 6, 19, 91, 93, 44, 47, 98, 86, 41, 63, 20, 72, 10, 42, 64 };
size_t values100Length = sizeof(values100) / sizeof(values100[0]);

void printArray(int* x, size_t length)
{
	for (size_t iCount = 0; iCount < length; iCount++)
	{
		Serial.print(x[iCount]);
		Serial.print(',');
	}
}

void setup()
{
	Serial.begin(115200);

	Serial.println("Ordenando 100 integers");
	unsigned long timeCount = micros();
	QuickSort::SortAscending(values100, 0, values100Length - 1);
	timeCount = micros() - timeCount;
	printArray(values100, values100Length);
	Serial.println();
	Serial.print(timeCount);
	Serial.println("us");
}


void loop()
{
}
  • QuickSortFloat: Ejemplo de uso para variables float.
#include "QuickSortLib.h"

float values100[] = { 3.0, 53.0, 70.0, 56.0, 18.0, 85.0, 27.0, 14.0, 37.0, 94.0, 9.0, 55.0, 40.0, 60.0, 52.0, 61.0, 15.0, 65.0, 13.0, 8.0, 57.0, 97.0, 69.0, 4.0, 35.0, 82.0, 22.0, 73.0, 59.0, 68.0, 78.0, 24.0, 21.0, 36.0, 71.0, 80.0, 74.0, 39.0, 17.0, 12.0, 29.0, 76.0, 49.0, 51.0, 30.0, 90.0, 88.0, 2.0, 84.0, 50.0, 62.0, 28.0, 77.0, 43.0, 5.0, 16.0, 58.0, 26.0, 32.0, 34.0, 1.0, 75.0, 66.0, 95.0, 38.0, 89.0, 67.0, 87.0, 100.0, 54.0, 92.0, 81.0, 25.0, 83.0, 46.0, 33.0, 23.0, 45.0, 96.0, 99.0, 79.0, 48.0, 11.0, 31.0, 7.0, 6.0, 19.0, 91.0, 93.0, 44.0, 47.0, 98.0, 86.0, 41.0, 63.0, 20.0, 72.0, 10.0, 42.0, 64.0 };
size_t values100Length = sizeof(values100) / sizeof(values100[0]);

void printArray(float* x, size_t length)
{
	for (size_t iCount = 0; iCount < length; iCount++)
	{
		Serial.print(x[iCount]);
		Serial.print(',');
	}
}

void setup()
{
	Serial.begin(115200);

	Serial.println("Ordenando 100 integers");
	unsigned long timeCount = micros();
	QuickSort::SortAscending(values100, 0, values100Length - 1);
	timeCount = micros() - timeCount;
	printArray(values100, values100Length);
	Serial.println();
	Serial.print(timeCount);
	Serial.println("us");
}


void loop()
{
}

About

Librería para ordenación con algoritmo QuickSort en Arduino

https://www.luisllamas.es/libreria-arduino-quicksort/

License:Apache License 2.0


Languages

Language:C++ 100.0%