quicksort.h

Female celtic vocals, Epic cinematic scores, sweeping orchestral movements, adventure music

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

City of Shadows
City of Shadows

bouncy dark synthwave

Moonlit Whispers
Moonlit Whispers

nostalgic lofi reverb gentle calm

ΗΡΑ
ΗΡΑ

Dark Doom Dramatic Rock Opera, Dramatic Church Organ, "i-VI-iv-V" Chord Progression, Βm, Epic Riff

Alone in the Rain
Alone in the Rain

j-pop electronic melancholic

Josh the Real MVP
Josh the Real MVP

punchy gritty

You're My Heaven
You're My Heaven

synth-heavy techno

قلبي وعينك
قلبي وعينك

شرقي، رومانسية، تقليدي

Timeless Dream
Timeless Dream

melodic orchestra chill lo-fi cinematic, pop

Friendship For Ever
Friendship For Ever

pop-ballad, beat, rock

Beautiful Carnage
Beautiful Carnage

industrial tribal brutal

Phối lại - Rap love + Ballad - indie
Phối lại - Rap love + Ballad - indie

rap love, ballad , guitar, pjano, indie, male voice

Solar Visions
Solar Visions

jazz,funk,vocal jazz,r&b,contemporary r&b,hip hop,pop,r n b,other rap hip-hop,saxophone,bounce,soul

deyja frændr,
deyja frændr,

Progressive drum and bass, heavy bass line, agressiv phonk, trip-hop, agressive norse female vocal

Kännin Ahdinko
Kännin Ahdinko

80s, punk, pop, metal

You'll never be mine
You'll never be mine

2000's hiphop beats

Cinta dan Pengorbanan
Cinta dan Pengorbanan

rock, japanese rock, female singer

Nostalgia Serenade
Nostalgia Serenade

piano minor scale classic guitar nostalgic odd signature serenade

Carrot song
Carrot song

Bossa nova

Moonlight Whispers
Moonlight Whispers

mellow pop dreamy