aaaaaa123456789 icon

Basic integer sorting function

aaaaaa123456789 | PRO | 03/12/15 10:11:43 PM UTC | 0 ⭐ | 574 👁️ | Never ⏰ | []
C |

540 B

|

None

|

0 👍

/

0 👎

#include <stdlib.h>
#include <string.h>
 
void sort (int * array, unsigned length) {
  if (!array) return;
  if (length < 2) return;
  int * sorted = malloc(length * sizeof(int));
  int * lower = sorted;
  int * higher = sorted + length;
  unsigned p;
  for (p = 1; p < length; p ++)
    if (array[p] < *array)
      *(lower ++) = array[p];
    else
      *(-- higher) = array[p];
  *lower = *array;
  p = lower - sorted;
  memcpy(array, sorted, sizeof(int) * length);
  free(sorted);
  sort(array, p ++);
  sort(array + p, length - p);
}

Comments