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

Unstoppable Beat
Unstoppable Beat

dance pop upbeat

MANØ - Future Bubbles.
MANØ - Future Bubbles.

slow melodic afro house

Shariz Play the Bagpipe
Shariz Play the Bagpipe

Original Scottish Bagpipes and drums,Marching Music,

Dans la douceur de l'hiver
Dans la douceur de l'hiver

folk, winters, atmosphere, female voice

Ritmo en la Noche
Ritmo en la Noche

nu-jazz atmosférico suave

Psychedelic Voyage
Psychedelic Voyage

instrumental,instrumental,instrumental,instrumental,instrumental,goa trance,psytrance,trance,electronic dance music,electronic,melodic,psychedelic,energetic,instrumental,sampling,fantasy,atmospheric,heavy,hypnotic,rhythmic,repetitive,nocturnal,complex

Straßenlicht
Straßenlicht

grime, 90s, rap

Anything For You
Anything For You

Melodic rock, progressive rock, grunge, grime rock, C minor, metal, chill, alternative, dramatic introduction, 808s, rap

Aku yang selalu
Aku yang selalu

female bass voice, sad vibes, minor notes, indonesian pop song, all instruments

Flamenco Fuego
Flamenco Fuego

flamenco trap dynamic

Rushing Hard
Rushing Hard

tech house edm j-pop k-pop

Commit to the Flame
Commit to the Flame

rock,alternative rock,indie rock,garage rock,indie

Back Then
Back Then

Nostalgic melodic progressive house from 2016, beautiful, reminiscent of a sunny day

Bossa for rainy days
Bossa for rainy days

French Bossa nova, a capella, fast paced

Never See You Again
Never See You Again

reggae, harmonica, melody, trombone, synth

Mud Baptism
Mud Baptism

grungy electric southern rock

Empty Showground
Empty Showground

pretty alt-emo, pretty melodic alt-goth, bossa nova, cello, double bass

Сыщик(alternateversion)
Сыщик(alternateversion)

Modern melodic metal, male vocals