ArraySort
Example of using the standard library algorithms.
- Boards:
- AVR, AVR USB, Nano Every, Nano 33 IoT, Nano 33 BLE, UNO R4, Pi Pico, Due, Teensy 3.x, ESP8266, ESP32
This sketch creates an array with an unordered sequence of 10 numbers. It prints the array, and then creates a reverse view on the 6 elements in the middle of the array and sorts it. The resulting array has the same elements in the 4 outermost places, but the 6 elements in the middle have been sorted in reverse order.
Output
Before sorting: 3, 5, 9, 2, 1, 8, 6, 4, 7, 0
Sorting ├─────────────────┤ in ascending order
After sorting: 3, 5, 1, 2, 4, 6, 8, 9, 7, 0
Sorting ├─────────────────┤ in descending order
After sorting: 3, 5, 9, 8, 6, 4, 2, 1, 7, 0
Written by PieterP, 2019-11-12 https://github.com/tttapa/Arduino-Helpers
#include <AH/STL/algorithm>
void setup() {
Serial.begin(115200);
while (!Serial)
;
Array<int, 10> array {3, 5, 9, 2, 1, 8, 6, 4, 7, 0};
Serial <<
"Before sorting: " << array <<
endl;
Serial << " Sorting ├─────────────────┤ in ascending order"
auto forward_view = array.slice<2, 7>();
std::sort(std::begin(forward_view), std::end(forward_view));
Serial <<
"After sorting: " << array <<
endl;
Serial << " Sorting ├─────────────────┤ in descending order"
auto reverse_view = array.slice<7, 2>();
std::sort(std::begin(reverse_view), std::end(reverse_view));
Serial <<
"After sorting: " << array <<
endl;
}
void loop() {}
Dummy header file for Arduino builder.
Print & endl(Print &printer)
An array wrapper for easy copying, comparing, and iterating.