19 static void swap(uint8_t *a, uint8_t *b);
20 static void reverseArray(uint8_t *first, uint8_t *last);
22 bool generateNextPermutation(uint8_t *first, uint8_t *last)
24 uint8_t *i = last - 1;
25 if (first == last || first == i)
34 while (!(*i < *--j)) ;
37 reverseArray(ii, last);
43 reverseArray(first, last);
60 static void swap(uint8_t *a, uint8_t *b)
76 static void reverseArray(uint8_t *first, uint8_t *last)
83 swap(first++, last--);
88 swap(last++, first--);