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

Miedo Infantil
Miedo Infantil

[energetic 2020s post-punk revivals], nu rawk, synth core, Sultry male singer, [Catchy instrumental intro], 2020s

Perro
Perro

acoustic psychedelic, acoustic guitar, SITAR

Paalam na
Paalam na

pop rhythmic heartfelt

Searching in the Night
Searching in the Night

atmospheric electronic indie-pop male

Kal Gurbet Anne
Kal Gurbet Anne

acoustic emotional pop

私は私たちの束縛を破るでしょう、ママ。 (Song)
私は私たちの束縛を破るでしょう、ママ。 (Song)

Fire, Rap, Miku voice, Vocaloid, math rock, j-pop, mutation funk, bounce drop, hyperspeed dubstep

Больше чем всё!
Больше чем всё!

punk rock, sream vocal, agressive drum, guitar, electric guitar, 180 bpm

Singularity's Throne
Singularity's Throne

rock,alternative rock,electronic,experimental,grunge,post-grunge,rap

Don't Ask Me
Don't Ask Me

bouncy swing

Dancing Shadows
Dancing Shadows

guitar, metal, jazz, funk, drum, bass

Stand for Freedom
Stand for Freedom

male vocalist,rock,heartland rock,pop rock,melodic,folk rock,bittersweet,anthemic,warm,conscious

Rollin' Bandit Blues
Rollin' Bandit Blues

blues and rock,bluesy guitar riffs, driving rhythms, and soulful vocals that evoke thrill

The Man Out of Time
The Man Out of Time

Gritty slow rock dark heavy

naviny 7
naviny 7

tv program about future science, energetic and technologic

naren dan mei
naren dan mei

pop,happy,guitar, drum,romantic

Живём мы жизнью светлой и простою
Живём мы жизнью светлой и простою

joyful love ballad,flamenco,guitar Flageolet 6/8 ,orchestral,flute,fabulous song,violin,dreamy song,Cymbals, piano,male

Shadow of Solitude
Shadow of Solitude

poignant orchestral melancholic

Два крыла
Два крыла

slow male voice, rock, balade