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

Glow in the Night
Glow in the Night

turkish dance pop disco energetic happy

Waltz of the New Era
Waltz of the New Era

upbeat symphonic epic metal female vocals

月光曲
月光曲

pop acoustic melodic

Gangster's Heartbeat
Gangster's Heartbeat

italian orchestral fusion indian dj mix electronic beats

Sema ve Azer
Sema ve Azer

Romantic Rock

The White Dragon's Lair
The White Dragon's Lair

acoustic medieval epic

Eres tú, Jesús.
Eres tú, Jesús.

Soft and love music, violin and piano, soft female voice contralto.

Valor's Echo
Valor's Echo

male vocalist,metal,rock,heavy,mythology,melodic,rhythmic,fantasy,epic,concept album

City Lights
City Lights

drum and bass,cute, orchestral, emotional, pop,pure

Echoes in the Night
Echoes in the Night

Sonata, piano, guitar

Independent Missy
Independent Missy

Black girl rap, hip hop

💔 wait for her 💔
💔 wait for her 💔

depression, sad, emo, emotional, pop, male vocals, synthwave, doomsday, neoclassical

Descanso da Fúria
Descanso da Fúria

Deep house, future house, techo house, electro dance, female voice, applause

Strongarm vs Sideswipe RID 2.0
Strongarm vs Sideswipe RID 2.0

pop rock, hard rock, power pop, guitar, male voice, 90s, emotional

last-soldier
last-soldier

Melancholic phonk, trumpet, whistle

Dancing All Night
Dancing All Night

upbeat eurodance electronic

Silent Whitescapes
Silent Whitescapes

instrumental,ambient,minimalism,atmospheric,soft,calm,mysterious,ethereal,soothing,instrumental,minimalistic,nocturnal,cold

Cool Cats' Jive
Cool Cats' Jive

r&b,acid jazz,rhythmic,jazz-funk