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

Nanashi Zero's So Shut UP Parody
Nanashi Zero's So Shut UP Parody

Catchy Instrumental intro, Horror. Dark. fast aggressive rap. speedcore. gritty female vocal. spoken fast

Light's Grace
Light's Grace

Ambient, Ethereal Soundscape

My Sweet Escape
My Sweet Escape

dance-pop pop

Tangerines
Tangerines

anthemic dancepop

Весёлая Песенка
Весёлая Песенка

весёлая мелодичная детская

我在深圳
我在深圳

Pop, hoarse and good to hear, guitar, passionate melody, soothing, Male Voice, drums

Shadow Dancer
Shadow Dancer

dark rock intense electric violin

明月颂
明月颂

中国戏曲,音乐厅,, anthemic, melodic, pop,

Midnight Reverie
Midnight Reverie

romantic, guitar, groovy, pop, smooth, trap, indie pop

Sahabat Setia
Sahabat Setia

traditional Arabic music, traditional Arabic percussion, traditional Arabic Percussion, MArch, enthusiastic

ThaTa
ThaTa

Pop-Rock Rap

Shift the Scene
Shift the Scene

hard rock, blues, soul, hip hop, pop

Shine On Me Again
Shine On Me Again

Christian worship

The silence of the end
The silence of the end

very slow thrash metal, dark ominous atmosphere, half steps

Run Away with Me
Run Away with Me

passionate edgy electric grunge

I Had A Confession
I Had A Confession

trance, 90s boy band trance pop with heavy synth pads and driving kick drum. male vocals, boy band, pop

A slow night06
A slow night06

piano, lo-fi chill, ambient instrumental, Sounds of rain,

К тебе
К тебе

sad, guitar, pop, female vocals

Just Because
Just Because

Electronic, sweet female voice, eerie, swing, dreamy, melodic, electro, sad, emotional

80s Ad Song
80s Ad Song

Lowercase, Zeuhl, Vaporwave. Zouk. Neurofunk, Simpsonwave.