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

Наша судьба
Наша судьба

male singer, dance pop, midtempo, nu rock

#.-
#.-

Mathcore

Push
Push

distorted voice, vocal chops, synthwave, hype, melodic

Ode from the east
Ode from the east

communist, war, socialist, soviet union, stalin

ในใจมีเพียงเธอ
ในใจมีเพียงเธอ

upbeat EDM Christian pop song

Rise and Shine
Rise and Shine

electronic synth-heavy trance

Good intro
Good intro

Hyper-Blues rock, indie, soul, guitar, instrumental intro, calm, slow

Make It Right
Make It Right

pop, reggae, dance, beat, male

Voodoo Man of the Eastern Bayou
Voodoo Man of the Eastern Bayou

honky tonk blues, hokum, hi-nrg, bebop jazz, female vocalist

???
???

synth, pop, upbeat

Lingering Echoes
Lingering Echoes

male vocalist,r&b,contemporary r&b,alternative r&b,hip hop,melancholic,longing,bittersweet,melodic,atmospheric,mellow,soft,nocturnal

This Is a Test Message
This Is a Test Message

electronic bubblegum bass grime

Soaring Anthem
Soaring Anthem

electronic,future bass,melodic,trap [edm],rhythmic,uplifting,girl group,orchestral pop,strings

Whispering Shadows - Almost all done by AI
Whispering Shadows - Almost all done by AI

trip hop piano drums dream pop guitar bass melancholy

Chunga
Chunga

Electronic Experimental Reggaeton IDM avant-pop ambient Industrial hip hop Alternative female vocals Dark Stereo 140 BPM

Шуми Марица
Шуми Марица

Slavic folk, bulgarian folk, minor, trap, flute, industrial, glitch, dystopian, orthodox chants

High Voltage
High Voltage

dubstep energetic aggressive

Eazy Dayz in L.A.
Eazy Dayz in L.A.

rap, hip hop, hardcore hip hop, comedy hip hop, west coast hip hop, gangsta rap, male voice, g-funk, 90s, house