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

Lost in My Mind
Lost in My Mind

scary circus, electro, bass

Can I call you babe
Can I call you babe

catholic, psychedelic, pop, upbeat, male vocals, gospel

The exams but you are into victorian era
The exams but you are into victorian era

Exam is the final boss you deeply afraid of

Мариуполь
Мариуполь

Synth Trap, Atmosphere Electronic Trap, Atmosphere Orchestral, Atmosphere Trap, R&B, Emerson Moog Modular Synth, Moog,

School Blues
School Blues

romantic hip hop

When Dreams Come Alive
When Dreams Come Alive

Electropop, Synthpop, Art Pop, progressive sounds, deep bass, steelpan, synthesizers

Intelligent Dream
Intelligent Dream

Genre: Future Pop Mood: Inspiring, Futuristic Instrumentation: Synthetic Sounds: Electronic beats, futuristic synths.

Slow to Light
Slow to Light

療癒,舒緩,抒情

Imperium Candium March v2
Imperium Candium March v2

military patriotic orchestral

Smile Song [Suno AI version]
Smile Song [Suno AI version]

rock, hard rock, techno, guitar, cinematic, pop rock, dreamy, metal

胸の鼓動が止まらない2
胸の鼓動が止まらない2

heavy metal, guitar, rock, anime

Phantom Echo
Phantom Echo

nu-jazz j-pop intense

Phantom Farewell
Phantom Farewell

male vocalist,hip hop,gangsta rap,hardcore hip hop,southern hip hop,boastful

Erika's Blossom
Erika's Blossom

powerful, guitar, k-pop, pop, electro, anime

The Projects
The Projects

Fast-paced skatepunk with female vocals, dark, demo, amateurish, urban decay, raw, raspy hoarse voice, gritty, G minor

Oh Anggaran
Oh Anggaran

⚔️ Power Metal ⚔️, Symphonic, Violin, Male vocals