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

In & Out
In & Out

Indie pop, Kitten-core

Father's Delight
Father's Delight

Experimental super funk, Soul/Funk, 1970s, on the 1 beats, Psychedelic Jazz Sax, P-Funk Grooves

Камень в голове
Камень в голове

pop, rock, electro, metal, melancholic,guitar,sad, emo, classical, emotional

Captain of My Heart
Captain of My Heart

female vocalist,j-pop,pop,melodic,television music,bittersweet,energetic,pop rock,uplifting,longing,club,synthesizer

人生箬夢
人生箬夢

Japanese Taiko, melodic classical

رویای شیرین
رویای شیرین

female vocalist,electronic,pop,electropop,pop rock,anthemic,melodic,playful,uplifting,energetic,bittersweet,optimistic,boastful,rebellious

the ride
the ride

heavy indie folk

The Grind of a Lifetime Vers.2
The Grind of a Lifetime Vers.2

harpsichord hip hop, Harpsichord, hip hop beat, baroque elements, turntable, vinyl samples, instrumental loop

Bravery in the Cold
Bravery in the Cold

Bass, emotional, piano, electronic, Fast

Eren5 - Core
Eren5 - Core

Hard deep techno, Very melodic hardstyle, rallysport style, speed

永远的回忆
永远的回忆

melodic nostalgic pop

Jiwa Bertumbuh
Jiwa Bertumbuh

classical music,passionate,spiritual,male vocals

最美
最美

female voice, pop, rap

The Ballad of the Golden Fruit
The Ballad of the Golden Fruit

melodic acoustic folk

Werder's Anthem
Werder's Anthem

triumphant rock gritty

The Lego City
The Lego City

Drill pop-rap synth-pop

Flames
Flames

pop and rap, female and male voice

Chasing Stars
Chasing Stars

Sad, male voice, powerful, soul, cello, industrial

Ano Hi No Te
Ano Hi No Te

alternative rock, sad mood, sentimental, powerful chorus, soft female vocalist, piano, violin melody, emotional

Fantastix
Fantastix

post-indietronica post-instrumental flute revival