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

The Soy Sauce Song
The Soy Sauce Song

yolkhead, 🌳, 3daisy, Brutus, pop , female voice

Bars in the Trap
Bars in the Trap

heavy 808s sinister synths trap

Have a little faith
Have a little faith

Clap, bass,guitar, beat, black Female, happy,hip-hop, gospel, heartfelt

Vers l'Apogée
Vers l'Apogée

énergique entraînant hip-hop

Falsely Accused
Falsely Accused

90's hip-hop, scratching, beats, electronic, male voice

TT兄弟
TT兄弟

male vocals, pop, upbeat, rap, female vocals, trance

Dancing in the Rain
Dancing in the Rain

Traditonal Japanese, Synth, Jazz

Bayangan Sendiri
Bayangan Sendiri

male voice, indie, sad, guitar,

Прыгну со скалы
Прыгну со скалы

Chill atmospheric breakcore, speedcore, female vocal, high tempo

Lost in Your Echo
Lost in Your Echo

synthpop dreamy atmospheric

lullaby
lullaby

indie rock, female vocal

Family Journey
Family Journey

heartfelt, female singer, energetic, pop, smooth, jazz, groovy

Pace Mitica
Pace Mitica

emotional, flauto, lento, epic horn, Dream.

Самая Счастливая
Самая Счастливая

женский вокал поп мелодичный

Echoes of Greatness
Echoes of Greatness

Alternative rock, contemporary pop, drums and gituar hook, bold dramatic male voice

Where We Used To Go
Where We Used To Go

drum and bass heartfelt electronic

Dhammakaya Eulogy Pali
Dhammakaya Eulogy Pali

Holy, esoteric, mysterious, soul, calm, peaceful, chant, eternal.

Fun to Rhyme
Fun to Rhyme

dance pop