3 * Copyright (C) 2009 Daniel Borkmann <borkmann@gnumaniacs.org>
4 * Copyright (C) 2009 Thomas Reinhardt <treinhar@imn.htwk-leipzig.de>
5 * Copyright (C) 2009 Rico Tilgner <rtilgner@imn.htwk-leipzig.de>
8 * Faculty of Computer Science, Mathematics and Natural Sciences,
9 * Leipzig University of Applied Sciences (HTWK Leipzig)
17 static void merge(int lo
, int m
, int hi
, float *a
, float *b
)
26 while (k
< j
&& j
<= hi
)
36 static inline void mergesort(int lo
, int hi
, float *a
, float *b
)
39 int m
= (lo
+ hi
) / 2;
41 mergesort(lo
, m
, a
, b
);
42 mergesort(m
+ 1, hi
, a
, b
);
43 merge(lo
, m
, hi
, a
, b
);
47 void sort(float *a
, size_t n
)
49 float *b
= xmalloc(n
* sizeof(float));
50 mergesort(0, n
- 1, a
, b
);