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

BGM,  Cafe music,  unplugged,  brightly
BGM, Cafe music, unplugged, brightly

BGM, Cafe music, unplugged, study BGM, brightly

Supercomputers and Crypto-Rigs breeding millions AIs I-b
Supercomputers and Crypto-Rigs breeding millions AIs I-b

epic, symphonic speed synthesizer, edm, math rock, experimental

Comforting Echoes
Comforting Echoes

lo-fi tranquil soothing

Sábado à Noite
Sábado à Noite

dançante alegre pop

Feline Groove
Feline Groove

male vocalist,electronic,electronic dance music,house,dance,dance-pop,electropop,electro house,party,energetic,rhythmic,repetitive,uplifting

test1
test1

orchestral, epic, rock

Race Against Time
Race Against Time

rock speedy energetic

Betrayal Love_Extend version
Betrayal Love_Extend version

R&B, Soul, emotional depth, powerful vocal delivery, and rich, piano-driven instrumentation, umultuous romantic relation

60. Ethereal Snowfall
60. Ethereal Snowfall

meditative atmospheric ambient

Behind the Music
Behind the Music

techno beat, death metal guitars, female rapper, grand piano intro, trumpet solo

Rise of AI
Rise of AI

electronic futuristic

Dancing in the Parfait
Dancing in the Parfait

house club piano

Ricos ahumados
Ricos ahumados

Reguetón

dd
dd

gore metal

ตัดใจ
ตัดใจ

ตัดสินใจลืมว่ามีเธอ ก็มันไม่รักกันแล้ว เธอจะขังฉันทำไม อย่างจะเจอกันอีกเลย ต่อให้เธอจะมีใครมากมาย ฉันคงต้องอยู่คนเดียว

Forgive Us
Forgive Us

acoustic christian

Electric Dreams
Electric Dreams

ethereal electronic dreamy

CRy FoR heLp [SSC4 - Remix Challenge - Zaraphira]
CRy FoR heLp [SSC4 - Remix Challenge - Zaraphira]

[Post-Hardcore], [Math Rock], [Midwest Emo], Female Singer