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

Strings
Strings

Cafe BGM, Lo-Fi, Pop, Relaxed, EDM, Acoustic

Dark aria lv2 (cover)
Dark aria lv2 (cover)

heavy bass male voice medieval opera dubstep NaturalTonality834

Центр команд, Ночь
Центр команд, Ночь

electronic, rock, metal, heavy metal

GIỌT NẮNG ĐI HOANG
GIỌT NẮNG ĐI HOANG

SLOW, drum and bass, electro, pop, mellow, beat, k-pop, upbeat, style, guitar

Lonesome Sands
Lonesome Sands

western hard rock, cowboy, arpeggios, Chiptune.

Frag das ganze Land
Frag das ganze Land

west coast rap

dreams
dreams

nurock, synth solo, smooth saxophone background, synthwave, acapella, sertanejo, reggaeton, tambourine

Where Did You Go now
Where Did You Go now

hip hop ambient lofi chillout, 303kit, 79bpm, 4-track Cassette recording, underproduced and unintentionally Catchy

Surreal
Surreal

electronic, piano, soul, guitar, romantic, female vocals

Pergi Ini Lebih Bijaksana
Pergi Ini Lebih Bijaksana

Pop punk, electric guitar, male voice, female voice

Summer Wind Embrace
Summer Wind Embrace

house,club,electronic,electro house,festival progressive house,electronic dance music,heavy,party,energetic,mechanical

40 grados
40 grados

[90s] ballad, pop, beat, synth, electro, bass, drum

歌声与微笑(重金属)
歌声与微笑(重金属)

Chinese Folk, Death Metal, Choral Music,Impassioned,Epic, rap, Rock

AI penned down a melody
AI penned down a melody

Acoustic Chicago Blues Reggaeton

Tech Odyssey 8.1
Tech Odyssey 8.1

Appalachian Virginia reel, 1920s, solo bass male vocal, banjos, fiddles, mandolin, bass, dry, fast and clear

หนทางแห่งชีวิต
หนทางแห่งชีวิต

ไพเราะ pop อะคูสติก

Spellbound Beauty
Spellbound Beauty

pop rock, sad, pop, rock, slow rock, metal rock, guitar solo, guitar, alternative rock, drum, bass, violin, piano

Jungle Beat
Jungle Beat

pop alternative funky rap

Cherry Blossom Trap
Cherry Blossom Trap

japanese cultural sounds trap

Heartbreak Symphony
Heartbreak Symphony

pop piano melancholic