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

Elven Solitude
Elven Solitude

ballad lute adventurous flute low key

Arraial da Prevenção
Arraial da Prevenção

forró dançante animado

Corner of the coffee shop
Corner of the coffee shop

modern blues-rock, guitar, happy

10th Century
10th Century

[Artcore], syncopated anime, sweet female vocals, emotional higher pitch voice

Love in the dark
Love in the dark

doom hip-hop, alternative pop rock, slow eerie deep bass, female vocal, alternative rock

잊지 못할 기억들
잊지 못할 기억들

korean pop ballad emotional piano

Whispers in the Fog
Whispers in the Fog

acoustic folk dark ambient

Shopper's Delight
Shopper's Delight

upbeat catchy pop

Every birthday you feel _ R&R_v.0
Every birthday you feel _ R&R_v.0

Female vocal, lyric, boogie woogie, rock & roll, chunky guitar, groovy, drive, power guitar solo 16 bars

ElecWave 80s
ElecWave 80s

80s, synthwave, electro, electronic

Under the Crimson Sky
Under the Crimson Sky

Orchestral pop, only male voice, slyle bang bang movie

Echoes in the Night
Echoes in the Night

eurodance, female voice, synthwave, electro

Switlhavi swa Marhambu
Switlhavi swa Marhambu

Native American Drill, Turkish Math Grime, Egyptian Prog Phonk, Persian Reggae Djent, Irish Drill Grime Phonk, Boom Bap

Coloring Beyond the Worms
Coloring Beyond the Worms

dark catchy fast vivid skate punk, analog funky bass synth, sparse ethnic textures, evil minimal female glitch-jazz

werty
werty

Driving 1980's Disco-pop, melodic, catchy, chorus in minor

unrequited love
unrequited love

indie-pop soulful dreamy psychedelic depressed sadness broken heart low beat rap male singer

Magic
Magic

country, pop, rock, kpop, piano