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

I’m just trying my luck
I’m just trying my luck

drum, drum and bass, guitar, electro

π
π

Rapid-fire rap, 140 bpm, deep bass beats, aggressive delivery of digits, minor key, high tension, trap, car, horror

美徳と罪の交響詩
美徳と罪の交響詩

classical, dark, orchestral, epic, cinematic, vocaloid, piano, emo

Gangster's Melody
Gangster's Melody

romantic dance electronic

more1
more1

80s dj funk

Rising Sun S. Peak
Rising Sun S. Peak

pop synth-driven

Time is Money  cinematic
Time is Money cinematic

dramatic, orchestral, cinematic, epic, non-lyrics, instrumental, soundtrack, atmospheric, drum and bass, complextro, EDM

彷徨いの島
彷徨いの島

taikodrum,shamisen,koto,shakuhachi,Electronic synthesizer,guitar,bass,symphony,epic,J-Pop

A Day in the Park
A Day in the Park

lo-fi Japanese city funk rain, dark night ambient, piano, funky

Bubblegum Dreams
Bubblegum Dreams

rap pop youth bubbly happy

**Que Nadie Sepa que te Amo**
**Que Nadie Sepa que te Amo**

Bolero, latin, clásico romántico orquestal

The Pale Claws Den
The Pale Claws Den

Bard, Tavern, Festive, Female-Singer, Instrument Lute, Instrument Flute

to er mer enn en
to er mer enn en

Norsk tale. Ballade. Countrypop. emosjonell

Domino
Domino

Electric kpop

New Beginnings in NYC
New Beginnings in NYC

beat-heavy hip hop gritty

I can't take no more
I can't take no more

live music, audience singing live, live band, hip hop, sophisticated, crisp, female vocals

Siti rohayati
Siti rohayati

female voice, guitar, drum, drum and bass, bass, male voice, pop, upbeat, techno, electro, beat

你的氣息
你的氣息

pop,funk