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

Racing Immortal
Racing Immortal

male vocalist,hard rock,rock,glam rock,energetic,melodic,glam metal,anthemic,uplifting

Ancient Beast
Ancient Beast

Nu Metal, Atmospheric, Dark

Endless Love Note (piano)
Endless Love Note (piano)

piano emotive melodic

Midnight Serenade
Midnight Serenade

EDM, Dance, Party, Male Vocals

That day heart collapsed quiet
That day heart collapsed quiet

pop rock, hard rock, power pop, guitar, male voice, 90s

戦国女子
戦国女子

atmospheric, dramatic, rock, pop, epic 男性の声 重厚

Semangat dan Bahagia
Semangat dan Bahagia

upbeat pop catchy

stranger in the past
stranger in the past

pop accoustic mlow

Niegrzeczny Antek
Niegrzeczny Antek

taneczny disco pulsujący

Trying to find my way
Trying to find my way

Rock, ballad, road song.

Summer is coming
Summer is coming

melodic, flamenco, catchy, epic, inspiring, pop, Latin Pop, medium-paced, lush, passionate, Acoustic flamenco guitar

Final Farewell Fight/End Credits
Final Farewell Fight/End Credits

video game,chiptune,indietronica,synth punk,electronic,bit music,bitpop,power pop,j-rock,uplifting,energetic,melodic,warm,triumphant,epic,anthemic,noisy,bittersweet

Team in the Sky
Team in the Sky

electronic kpop

Galactic Frontier
Galactic Frontier

electronic synthwave atmospheric

Свет
Свет

russian folk instruments ansamble named "gusli" like harp and cimbal. Russian folk fast musik from 10 century, synthwave

Lettre à Morphée
Lettre à Morphée

sad, piano, female singer, electro