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

Aku Meriang Merindukan Kasih Sayang
Aku Meriang Merindukan Kasih Sayang

Indonesian Remix, Disco,Romantic,House Remix,Bass,Guitar Electric,Contrabass,Pop DJ, House DJ,Drum,Disco Electric,

The science of farting
The science of farting

Upbeat children’s song, , touhou, nordic folk

Inferno
Inferno

Classical, Violin, G Minor

h,h,hm
h,h,hm

hip hop ,heavy metal,paganini,ciberpunk.heavy solo guitar

Frostbitten Foolery
Frostbitten Foolery

rock,metal,thrash metal,heavy metal,groove metal

Push the Button
Push the Button

phonk, aggressive, glitch, machin gun noises

Dance Floor Fire
Dance Floor Fire

electronic afro house

dOLCE sONNO
dOLCE sONNO

lullaby, children, female sweet voice, relax, sleeping, baby, snuggles

いつかまた...
いつかまた...

reverb effect j-rock

Sunshine After Rain
Sunshine After Rain

pop uplifting

بسم الله
بسم الله

deep violin & harp acoustic romantic arabic fusion

Lo-Fi Sunrise Suprise
Lo-Fi Sunrise Suprise

Vaporwave VHS, lo-fi chill funk, skate music, hyper stereo panoramic, 5.1 surround

به یاد مادرم
به یاد مادرم

pop sentimental lyrical

2024.7.29储物箱-6
2024.7.29储物箱-6

Pop.Folk.Cheerful,warm.Outdoor,.English.Acoustic guitar, upbeat drums.Outdoor storage

Музыка Дождя
Музыка Дождя

pop мелодичный акустический

Healing Dance
Healing Dance

female vocalist,pop,k-pop,electronic,dance-pop,dance,energetic,electropop,uplifting,party,mellow,punk pop

Le Rêve de la Nuit
Le Rêve de la Nuit

soprano singing glossy bass melodic french disco pop