quicksort.h

Female celtic vocals, Epic cinematic scores, sweeping orchestral movements, adventure music

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

The Midnight Rush
The Midnight Rush

british 80s synthpop

End Time
End Time

doom, stoner, langatmig, eingängige riffs, tief gestimmte bässe, langsamer rhythmus, Drumkit auch mit Glocke

señales2
señales2

electro-swing-step, step step-step, swinging-goth-rave-step-step

하얀 추억
하얀 추억

soothing pop melodic 하얀 눈 속의 추억

Macedonian Heartbeat
Macedonian Heartbeat

folk acoustic heartfelt

❤️ Cat Cat Cat....
❤️ Cat Cat Cat....

80's synth Pop, samples, synth drum

Gate of the Spirits
Gate of the Spirits

Acoustic piano, epic high, chorus in minor key, intense, majestic, fluid, complex, fluttering flute

Jazz for your Soul
Jazz for your Soul

energetic saxophone jazz

Ewigkeitsflug
Ewigkeitsflug

2010s Pop-Rock

Eclipsed Shadows
Eclipsed Shadows

darkwave epic ending dark symphonic

Yezturday
Yezturday

Rock, Anthemic, Emotion, Stomp, Raw, Slow Tempo,

En la batalla
En la batalla

Latin Spanish Heavy Metal

espiritu guerrero
espiritu guerrero

pop medio rockanrrolero con un estilo pegadizo y facil de cantar.

Mud On the Tires (Metal) 2nd Attempt
Mud On the Tires (Metal) 2nd Attempt

80s metal, guitar riffs, catchy hook, glam rock

Why Would You Ignore Me?
Why Would You Ignore Me?

Hardcore post-punk heartbreak

Travis
Travis

8-bit, melodic beat, edm, harpsichord, flute, electric, build up, bass drop, instrumental solo leadups, melancholic

Invisible Rhythms
Invisible Rhythms

r&b,funk,electronic,electronic dance music,pop,synth funk

フロアイット - Floor It!
フロアイット - Floor It!

acid new jack japanese trance