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

Hielo y Fuego
Hielo y Fuego

épico rock pop

.
.

duch dub techno minimal

epic
epic

epic moment, ascension

Zero Mavericks No More
Zero Mavericks No More

electric anthemic rock

Lost in the Neon
Lost in the Neon

city pop emotional bright synths

Гусары Шампанское Любовь
Гусары Шампанское Любовь

мелодичный русский романс акустический

花言葉
花言葉

ballad. cute j-pop, female singer, BPM100, C Major

OMG
OMG

Electronic (50), Pop (60), Techno (50), Dance (30), Hip-Hop (20), EDM (50), Synthpop (60), House (30), female vocal.

Chat with Stefan on Thursday
Chat with Stefan on Thursday

jazz,soul jazz,r&b,soul,funk,jazz-funk,smooth soul,modern jazz

Polyphony
Polyphony

polyrhythmic nocturnal 16bit ambient experimental electronica, shifting rhythm, conflicting time signatures, dolby atmos

Panic
Panic

syncopal, psychedelic, futuristic, electronic, sad, hard dubstep, trip-hop, massive, loud, total, apocalyptic

Meet Your Beat In Public
Meet Your Beat In Public

a 3 minute alternative hip-hop rap horrorcore beat with dark sexy energy and a fun slick modern beat

Bad Boy
Bad Boy

kpop, house

Running High
Running High

chill edm house beats bass

青叶
青叶

Chinese rock

Dream Waves
Dream Waves

synthwave epic

Mango Mania
Mango Mania

hip-hop playful

Привет
Привет

rhythmic, electronic with a pulsing beat and shimmering synth layers, pop