quicksort.h

Female celtic vocals, Epic cinematic scores, sweeping orchestral movements, adventure music

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

Children Of The Night
Children Of The Night

synthwave, uplifting, epic, energetic, atmospheric, female vocalist, joyful, driving beat, excited, optimistic, vital

Awakening of the Machine Gods
Awakening of the Machine Gods

aggressive metal dark classic

The Perilla Swing
The Perilla Swing

smooth jazz, allowing for a rich interplay of instruments like the stand-up bass, piano, & brushed drums

Ned Kelly vs. Slim Dusty
Ned Kelly vs. Slim Dusty

hard rock gritty aggressive

Ashes of Atonement
Ashes of Atonement

male vocalist,rock,alternative rock,progressive rock,pop rock,sophisti-pop,love,bittersweet,soft,eclectic,post rock,epic,atmospheric

Spainish Geetar
Spainish Geetar

Spanish guitar intro, Deep house, chillstep, Spanish guitar, duet

Let's Go!
Let's Go!

Drum & Bass, Synthwave

Starlit Nights
Starlit Nights

Industrial bass, psytrance, sound effect, glitch

Look Ma, I'm Trending!
Look Ma, I'm Trending!

brazilian phonk deep 808s eerie melodies samba rhythms heavy distorted bass

rap of the independence
rap of the independence

bee jazz, hip hop

Tujuh tahun bersama
Tujuh tahun bersama

Pop, classical, guitar, drum, piano, female voice, acoustic guitar

tap-Tap
tap-Tap

16bit , hard , vocaloid

Ein Datensatz brennt
Ein Datensatz brennt

Neue deutsche Härte

Ohne dich
Ohne dich

Hip hop

Outlaw Johnny
Outlaw Johnny

Outlaw country, country, slow paced

Lonely Brick Man
Lonely Brick Man

electronic vibrant pop

放っておいて (Leave Me Alone)
放っておいて (Leave Me Alone)

J-Rock, Electronicore, Television Music

Tides of the Trident
Tides of the Trident

instrumental,rock,progressive rock,symphonic prog,progressive,melodic,art rock,lush,surreal,psychedelic