quicksort.h

Epic cinematic scores, sweeping orchestral movements, heroic themes, and stirring emotional peaks, adventure,

July 27th, 2024suno

가사

#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

추천

Amidst the Turmoil
Amidst the Turmoil

Spoken word, shouted female voice, noise, guitar feedback, discordant, disharmonic, noisy, chaotic, sirens, aggressive

Der Zug des Lebens
Der Zug des Lebens

melodic rock

Rizzler's Groove
Rizzler's Groove

brainrot dhvdgdhjsdvsfhfhjdbhdbhjhnfbjvhfvbkhiyskbhvdbhjfvhjfbhvfjbgfvhfdhbj music dhjavfdhvdhsvdhvgdhuvgshdvdsmgashdvvg

Alphabet Fun
Alphabet Fun

Alphabet Fun

Love u Momma
Love u Momma

groovy yet hyphy west-coast phonk, psychedelic rap influenced, emotional fusion, bent tr-808, boomin drone bass, slowmo

산삼 파워
산삼 파워

dance-pop kpop

Scorpion Song (Hector)
Scorpion Song (Hector)

sorrowful angry percussive blues

Forest 1
Forest 1

Classic pop 70 BPM Female vocals Minor

Lost in the City
Lost in the City

Epic, Orchestral

O melhor dia da semana
O melhor dia da semana

Softcore, male voice, brazilian,

e
e

classica piano

Tommie-Tomæo Rage
Tommie-Tomæo Rage

male vocalist,rock,metal,metalcore,nu metal,alternative metal,dark,heavy,angry,hateful,beatdown hardcore

New Lease on Life V2
New Lease on Life V2

inspirational, harmonious vocals, alternative pop, synth-pop, rap, acoustic guitar, reflective, upbeat, pensive

Selamat Tinggal Mantan
Selamat Tinggal Mantan

melodic sad acoustic

Unleash the Truth
Unleash the Truth

70-80s, soulful gritty blues, men and women voices

El Show del Fin
El Show del Fin

rítmico pop energético

Гореть
Гореть

instrumental intro ,Math rock, mutation funk, bounce drop, emotional, EDM, female vocals, dubstep, rock, emo, hard rock

Infinite Reflections
Infinite Reflections

energetic 136 bpm e minor trance