diff options
| author | Tyge Løvset <[email protected]> | 2023-02-12 22:47:55 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2023-02-12 23:20:18 +0100 |
| commit | 7dc6fddc079f4f572c8fb7c0ffd5a27e03291a2d (patch) | |
| tree | 681d1894d917bc2fe244375298ea40f736c18e18 /include/stc/algo/csort.h | |
| parent | 9904a7ea36f9e4f45d7e41e409ed23ad22821e8a (diff) | |
| download | STC-modified-7dc6fddc079f4f572c8fb7c0ffd5a27e03291a2d.tar.gz STC-modified-7dc6fddc079f4f572c8fb7c0ffd5a27e03291a2d.zip | |
Fairly large update before release 4.1, cleaning up docs and some minor additions.
Diffstat (limited to 'include/stc/algo/csort.h')
| -rw-r--r-- | include/stc/algo/csort.h | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/include/stc/algo/csort.h b/include/stc/algo/csort.h index c8c41257..c452064f 100644 --- a/include/stc/algo/csort.h +++ b/include/stc/algo/csort.h @@ -20,8 +20,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include <stc/priv/template.h> #include <stc/ccommon.h> +#include <stc/priv/template.h> /* Generic Quicksort in C, performs as fast as c++ std::sort(). template params: @@ -31,37 +31,21 @@ template params: // test: #include <stdio.h> -#include <time.h> -#include <stdlib.h> #define i_val int #include <stc/algo/csort.h> -#include <stc/crandom.h> -#ifdef __cplusplus -#include <algorithm> -#endif -void testsort(csort_int_value *a, size_t size, const char *desc) { - clock_t t = clock(); - csort_int(a, size); - t = clock() - t; +int main() { + int arr[] = {23, 321, 5434, 25, 245, 1, 654, 33, 543, 21}; + + csort_int(arr, c_arraylen(arr)); - printf("%s: %zu elements sorted in %.3fms\n", - desc, size, t*1000.0/CLOCKS_PER_SEC); + for (int i = 0; i < c_arraylen(arr); i++) + printf(" %d", arr[i]); + puts(""); } +*/ -int main() { - size_t i, size = 10000000; - csort_int_value *a = (csort_int_value*)malloc(sizeof(*a) * size); - if (a != NULL) { - for (i = 0; i < size; i++) - a[i] = crandom() & (1U << 28) - 1; - testsort(a, size, "random"); - for (i = 0; i < 20; i++) printf(" %d", a[i]); - puts(""); - free(a); - } -}*/ -typedef i_val c_PASTE(c_PASTE(csort_, i_tag), _value); +typedef i_val c_PASTE(c_CONCAT(csort_, i_tag), _value); static inline void c_PASTE(cisort_, i_tag)(i_val arr[], intptr_t lo, intptr_t hi) { for (intptr_t j = lo, i = lo + 1; i <= hi; j = i, ++i) { |
