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

Timewaves
Timewaves

hyperpop, brash synth melodies, loud, experimental, exaggerated, catchy, Auto-Tuned vocals, distortion, female vocals

two gold pins
two gold pins

haunting ethereal electronic melodic slow indie pop with intense beat drop

Swami Samarth
Swami Samarth

dj electronic

Mountain of a Man
Mountain of a Man

Slow, sad, Heartfelt country. Low male vocals. Slow buildup intro.

Pharaoh's Quest 🐪𓂀
Pharaoh's Quest 🐪𓂀

upbeat with middle eastern influences electronic

City of Beasts
City of Beasts

high notes, hair/glam metal, 90s, slow catchy, epic, softthunderous metalcore. dark-synth metalcore, gothic darkwave 80s

Rock Dios
Rock Dios

male, female, rock, punk, romantic, positive, choris celtas

En la Noche
En la Noche

Folk metal

In This Jazz-Filled Moment
In This Jazz-Filled Moment

warm juzz, calm music, coffe juzz. Night core. the sleeping city juzz. Souds of rain, sounds of night city

Мой маленький ангелочек by Dj-Imperator
Мой маленький ангелочек by Dj-Imperator

Sad, piano, guitar, drum, drum and bass, male, electro

pannnnkookkk
pannnnkookkk

aggressive, banjo, nu metal, two vocals

Voorhees
Voorhees

Dark Hard Horror Trap with Hard Trap Metal Distorted Bass

In The End Ai Cover
In The End Ai Cover

trap powerful Dark edm complex hard

The Clock is Ticking
The Clock is Ticking

crunk swamp, cello, cinematic, metal

Dreamer
Dreamer

edm emotional

Dark Enchantment
Dark Enchantment

haunting dark fantasy orchestral

Hendrix Box
Hendrix Box

Glitch Music Box Lullaby Dirge Fusion, Dark Demented Melodies, Octatonic Scale, Jimmi Hendrix