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

East vs. East V2
East vs. East V2

alternative rap dark industrial hip hop violin electronic

distant horizon
distant horizon

1492, encounter of 2 worlds, cristobal colon, classical piano, symphonic orchesta, timpani, chorus

שיר לריי ותמר
שיר לריי ותמר

Dancing, funk, disco, man and woman voices. Choir.

Slavnost v Ohni
Slavnost v Ohni

Viking flute, Viking lyre, Tagelharpa, Viking drums, Man voice, Clear voice, Dark, Darker, Emotional

Granica
Granica

rock anthemic

La Luz Divina
La Luz Divina

choir orchestral mellow melodic polyphonic atmospheric choral

Путешествие на Восток
Путешествие на Восток

экзотический восточный ритмичный

Ilusão do amor
Ilusão do amor

romantic, acoustic, accordion, dance, male voice

Cobos y Lobos
Cobos y Lobos

playful latin pop

燃燄の騎士-男版
燃燄の騎士-男版

HARD ROCK,powerful male vocals,Empowerment,super-octave coupler,hight loud,upbeat,Electric guitar solo,Scream,roar style

Chaos Of The Beat
Chaos Of The Beat

villain theme symphonic drum'n'bass ambient

IATRACK 7
IATRACK 7

Tech, house, emocional, guitar, drum, sunset

Binary Souls
Binary Souls

Orchestral Pop,95 BPM,Piano,violins,cellos,acoustic guitar,subtle electronic elements,Smooth,soulful female vocals

The Fools Journey Act-2 (The Holy City of Life}
The Fools Journey Act-2 (The Holy City of Life}

progressive rock, rock opera, male vocal, female vocal, duet, symphonic

000024
000024

neo-classical, classical, orchestra, piano e violino, background jazz, pop

Baila Til I Die La
Baila Til I Die La

dance electro house

Rainy Day Anthem
Rainy Day Anthem

anthemic drum and bass uplifting

Rise to Glory
Rise to Glory

rock epic heavy