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

Soulmate's Touch
Soulmate's Touch

piano, uplifting dance, acoustic guitar, bass drop, ballad, death metal, edm

Rymden
Rymden

Indierock garagerock swing Swedish

Come as you are
Come as you are

Alternative Rock, Grunge, Punk Rock, Electric Guitar, Bass Guitar, nirvana song style, Come As You Are song

Signs and Wonders Rap Version
Signs and Wonders Rap Version

melancholic indie, lo-fi,

Alien
Alien

cosmic sounds, cosmic song, cosmic techno, cosmic melodyjny rap nu metal

Dreamscape v4
Dreamscape v4

ethereal psychedelic electro-pop

Karanlık Taraf
Karanlık Taraf

trap. hip hop. bass. drill.

Birthday Bash
Birthday Bash

pop dance

Marine Biologist
Marine Biologist

surf rock, electronic, dramatic orchestral, moderate tempo, groovy, danger, retro, quirky synth, funky bass, 2 minutes

Midnight Echoes
Midnight Echoes

dark synthwave

Clicking Over Whisky
Clicking Over Whisky

pop chill acoustic

Longing Burns
Longing Burns

slow goth alternative

Ik' u ka'anal, u bisik talel,
Ik' u ka'anal, u bisik talel,

ethnic, shaman, throat singing

Apathetic Anthems
Apathetic Anthems

female vocalist,male vocalist,electronic,downtempo,lush,chillout,lo-fi,trip hop,mellow,melancholy,piano,inspirational

Can't make real edm so i used ai
Can't make real edm so i used ai

DNB, house, EDM, future bounce rave

Fading Stardust
Fading Stardust

shoegaze electronic dreamy

Dnb techno 3
Dnb techno 3

drum and bass, midwest emo