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

귀한 인연 (Precious Fate)
귀한 인연 (Precious Fate)

Heart-wrenching Korean trot. Slow tempo, minor key, dynamic melody shifts, note bending. Suitable for a male vocalist.

Frost Count
Frost Count

trap,rap

Luminous Desire
Luminous Desire

female voice with cello instrumental sensuality positive energy intense

Еду
Еду

Man, indie, folk, acoustic, atmospheric

Отпусти меня
Отпусти меня

j-pop chillsynth, acoustic guitar, rock guitar, downtempo

pi hip house
pi hip house

electro hop, Hip house, Southern hip hop, pop rap, EDM, male singer, studio recording

Lost Nebula
Lost Nebula

psych rock down-tuned bass slow beat melancholy stoner

To. 민정
To. 민정

heavy metal, guitar, bass, opera, dark, 90s, chill

Saudade de Ti
Saudade de Ti

reggaeton,male voice

cat
cat

Psychedelic rock, energetic, anthemic, melodic, uplifting, driving, retro, vibrant, catchy, experimental, atmospheric

Vocal Voltage
Vocal Voltage

VOCODER,A Cappella, Dispassionate,Sprechgesang,VOCALOID, BLUES,EDM,E-minor,128BPM, baritone male vocal

Porcelain Remorse
Porcelain Remorse

male vocalist,rock,alternative rock,post-grunge,alternative metal,metal,passionate,energetic,hard rock,bittersweet,anthemic

A mis hermanos
A mis hermanos

alegre bailable pop

Finding Hope
Finding Hope

Deep manly voice singer, Syntpiano, Smooth syntwave, Electronic song

The Raven
The Raven

groovy bass

Versos ao Sabor do Café
Versos ao Sabor do Café

Country, Soft Rock, math rock, j-pop, mutation funk, bounce drop, hyperspeed dubstep, angry, melodic acoustic, anime

하늘 아래
하늘 아래

pop electronic