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

Melodie Dell'Anima
Melodie Dell'Anima

baroque,classical,opera,baroque music,classical music,western classical music,Tomaso Albinoni

Clash of the Celts
Clash of the Celts

foot-stomping energetic celtic rock

NUMBER ONE
NUMBER ONE

bossa nova, uk drill, electric piano, male voice bass voice, saxophone

Metal\Prog 8-3-24H
Metal\Prog 8-3-24H

[Heavy Metal, Prog, Classical Melodies, 13/8 Time, Technical Riffs, Dynamic Drumming, Virtuosic Guitar]

Dawn of Wonders
Dawn of Wonders

female vocalist,k-pop,pop,dance-pop,pop rap,electropop,contemporary r&b

Bizarre
Bizarre

experimental polka glitch-hop

На заре
На заре

ballade, female voice, choir, symphonic orchestra

Midnight Train
Midnight Train

dark, male voice, techno, experimental, mellow, aggressive, female voice, house, pop, smooth, bounce drop, deep, synth,

Ngày mới lên
Ngày mới lên

pop lyrical

Burning Shadows
Burning Shadows

intense psychedelic rock electric

Favorite guy
Favorite guy

Fun chant pop anthemic pop alto female

Unspoken Words
Unspoken Words

heartfelt piano ballad melodic

Rise from the Ash
Rise from the Ash

emotional piano into electric rock

New Me Ain't For You
New Me Ain't For You

high-energy with warped synths and distorted beats, hyperpop, glitchy, pop

Echoes of Tomorrow
Echoes of Tomorrow

male vocalist,rock,alternative rock,post-grunge,hard rock,energetic,melodic,passionate,anthemic,pop punk

Ballad of the Chrono Guard
Ballad of the Chrono Guard

choir reverent cathedral echo

Lattice (David)
Lattice (David)

80's Psychedelic rock, brit rock, glam rock, classic rock, dark wave, country jazz, piano, male vocals, orchestra, clean

Quest for the Kingdom
Quest for the Kingdom

instrumental medieval folk