quicksort.h

Epic cinematic scores, sweeping orchestral movements, heroic themes, and stirring emotional peaks, adventure,

July 27th, 2024suno

Lyrics

#pragma once #ifndef ORDERING_DEFINED #define ORDERING_DEFINED typedef enum { Ordering_LessThan = -1, Ordering_Equal = 0, Ordering_GreaterThan = 1, } Ordering; void _null_write_cb(void* userdata, void* loc) { (void)userdata; (void)loc; return; } #endif typedef ptrdiff_t ssize_t; void quicksort_swap(void* write_cb_userdata, char* a, char* b, ssize_t elem_size, void (*write_cb)(void*, void*)) { for (ssize_t i = 0; i < elem_size; i++) { char tmp = a[i]; a[i] = b[i]; b[i] = tmp; } write_cb(write_cb_userdata, (void*)a); write_cb(write_cb_userdata, (void*)b); } ssize_t partition( void* write_cb_userdata, void* cmp_cb_userdata, void* elems_void, ssize_t elem_size, ssize_t low, ssize_t high, void (*write_cb)(void*, void*), Ordering (*cmp_cb)(void*, void*, void*) ) { char* elems = (char*)elems_void; char* pivot = elems+high*elem_size; //quicksort_swap(write_cb_userdata, pivot, elems+high*elem_size, elem_size, write_cb); ssize_t i = low-1; for(ssize_t j = low; j < high; j++) { char* a = elems+j*elem_size; if (cmp_cb(cmp_cb_userdata, a, pivot) <= 0) { i += 1; quicksort_swap(write_cb_userdata, elems + i*elem_size, elems+ j*elem_size, elem_size, write_cb); } } quicksort_swap(write_cb_userdata, elems +(i+1)*elem_size, elems +high*elem_size, elem_size, write_cb); return i+1; } #include <stdlib.h> #include <time.h> int partition_r( void* write_cb_userdata, void* cmp_cb_userdata, void* elems_void, ssize_t elem_size, ssize_t low, ssize_t high, void (*write_cb)(void*, void*), Ordering (*cmp_cb)(void*, void*, void*) ) { char* elems = (char*)elems_void; srand(time(NULL)); int random = low + rand() % (high - low); quicksort_swap(0, elems+random*elem_size, elems+high*elem_size, elem_size, _null_write_cb); return partition(write_cb_userdata, cmp_cb_userdata, elems_void, elem_size, low, high, write_cb, cmp_cb); } void quicksort_impl( void* write_cb_userdata, void* cmp_cb_userdata, void* elems, ssize_t elem_size, ssize_t elem_low, ssize_t elem_high, void (*write_cb)(void*, void*), Ordering (*cmp_cb)(void*, void*, void*) ) { if (elem_low < elem_high) { ssize_t index = partition_r(write_cb_userdata, cmp_cb_userdata, elems, elem_size, elem_low, elem_high, write_cb, cmp_cb); quicksort_impl(write_cb_userdata, cmp_cb_userdata, elems, elem_size, elem_low, index-1, write_cb, cmp_cb); quicksort_impl(write_cb_userdata, cmp_cb_userdata, elems, elem_size, index+1, elem_high, write_cb, cmp_cb); } } void quicksort( void* write_cb_userdata, void* cmp_cb_userdata, void* elems, size_t elem_size, size_t elem_len, void (*write_cb)(void*, void*), Ordering (*cmp_cb)(void*, void*, void*) ) { if (!write_cb) { write_cb=_null_write_cb; } quicksort_impl(wri

Recommended

Rebel Cupcakes
Rebel Cupcakes

rebellious rock

Tersipu Malu
Tersipu Malu

Heavy Slow Rock, drums, Slow Rock Minang, indonesian traditional, guitar string, melodic, violin, melayu, soft rock

Alquis Amat Me
Alquis Amat Me

nu metal, aggressive, dark, heavy bass,

Pepperoni Bandie [EXTEND]
Pepperoni Bandie [EXTEND]

electric guitars pop punk

Labyrinth of Love
Labyrinth of Love

Pop, EDM, hardstyle, melodic dubstep, upbeat, happy

Electro Metal Symphony
Electro Metal Symphony

electro metal orchestral

Ethereal Echoes
Ethereal Echoes

female vocalist,film score,western classical music,classical music,cinematic classical,soundtrack,orchestral,cinematic

Jumpin' Frogs
Jumpin' Frogs

playful pop

Татииш
Татииш

atmospheric

ended darbuka
ended darbuka

solo Turkish oud

Hautaniweza wee!
Hautaniweza wee!

female voice, swahili taarab with flair, contemporary taarab, groovy bass, kenyan coastal style and accent

Desert Fire 11
Desert Fire 11

powerful, guitar, house, deep

Stellar Horizons
Stellar Horizons

instrumental,instrumental,instrumental,instrumental,western classical music,classical music,film score,cinematic classical,orchestral,epic,science fiction,arabic

Crave the Tension
Crave the Tension

dream pop,ethereal,atmospheric,melancholic,ambient pop,ambient

Diving Deep
Diving Deep

soft rock folk rock country

Journey to the Sky
Journey to the Sky

lofi ambient atmospheric

classic violin
classic violin

classic violin

In the Still
In the Still

Holstein Davidoff Cello with Minuet movement, base, romantic, sultry female voice, very slow

3 Chinesen
3 Chinesen

synthwave melodic