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

끝밤에 그린 여름
끝밤에 그린 여름

Femail, voice 전자바이올린, electrionic, 동양풍, band, 크레센도, highpitch, fast beat

青の果て
青の果て

gospel,soul,acoustic

『夢中花』(Dream Flower)
『夢中花』(Dream Flower)

J-Pop Rock Ballad R&B Anison Adult Contemporary Inspirational Emotional Romantic Energetic

Devil’s Lament
Devil’s Lament

Dark Cabaret, Dark Synthwave, Dark Pop

Moonlit Melodies
Moonlit Melodies

jazz graceful classic guitar

Förlängningens Nerver
Förlängningens Nerver

elektronisk upplyftande pop

Moja Prva Ljubav
Moja Prva Ljubav

dance pop, pop, boy band, synth-heavy dance pop male vocals

Weekend Love
Weekend Love

male acapella, acoustic Spanish guitar

Avec toi mon tésor
Avec toi mon tésor

Rap, French, piano, rythme lent

Guardians of the Pool
Guardians of the Pool

a cappella sea shanty rhythmic

Mogui para sempre
Mogui para sempre

emotional, cowntry, male voice

Charly le ouistiti
Charly le ouistiti

Rythmic pop danse techno

Silent Wind
Silent Wind

infectious hip hop

Dance Away
Dance Away

afro latin groove house percussive rhythmic

CircuitΔΞ Void
CircuitΔΞ Void

ΞtherΨonic FluxWave // Quantum∞Glitch

Salomon
Salomon

80s, rock, metal, hard rock, violin, alternative rock, guitar, opera, psychedelic, dark, pop rock,rap

Mekzite (PHONK4)
Mekzite (PHONK4)

Dark Phonk, Epic, Fast, Aggressive, Poor, Cool, Bizarre, Terrible

너와 나
너와 나

upbeat pop rhythmic

Raining Fire in the Night
Raining Fire in the Night

male vocalist,electronic,synthpop,melodic,atmospheric,melancholic,dark,anxious,mechanical,sombre