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

Empfohlen

Psalm 45
Psalm 45

Punk Rock

Usa Ra Ko, Ikaw Duhang Huna-huna
Usa Ra Ko, Ikaw Duhang Huna-huna

rock and ballad, guitar, drum, drum and bass

Баллада Кости
Баллада Кости

Power Metal, guitars, Rock guitar, melancholic male voice

Hōngry
Hōngry

Brassy big band

Sorcery of the Soul
Sorcery of the Soul

Melodic male volcals, singing-trap/HipHop, Lyrical Storytelling, Aggressive, Conscious, Abstract, emotive.

Shadows of The Heart
Shadows of The Heart

rock dramatic electric

Healer
Healer

melodic, metalcore, female voice, worship, uplifting

回復の物語
回復の物語

j-pop female

I'll Wait for My Love
I'll Wait for My Love

hard rock, musical, shanty, strong female voice

Can't Stop the Beat2
Can't Stop the Beat2

Heavy Rap, bass drop, rap, pop, bass, trap

Run Away with Me
Run Away with Me

passionate edgy electric grunge

Sonic Overthrow
Sonic Overthrow

male vocalist,rock,metal,sludge metal,heavy,doom metal,aggressive,rhythmic,energetic,psychedelic,emotional

val formazza 7
val formazza 7

Dancehall reggae, sweet, female and male echo voices

Inter-continental
Inter-continental

rap hardcore hip hop 90s electronic edgy

harpy 2.1
harpy 2.1

voz feminina,piano,violino,flauta,beat,calmo,relaxante,harpy hare,relaxante epic, bass, melancolico,epic,sad,orquestra

Isolation
Isolation

acoustic ballad

Benjamin the Legend
Benjamin the Legend

Australian, 90s, reggae, orchestral dubstep

Shattered Echoes
Shattered Echoes

Rock, Anthemic, Emotion, Stomp, Raw, Mid Tempo