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

Las miradas evitadas
Las miradas evitadas

dark-techno-house, chill lo-fi bass downtempo, bigbeat, psychedelic, ambient

Crystal Void
Crystal Void

female voice, bass, trance, progressive, heavy bass drop, techno, piano, arena vibe, big house beat

Dancing Under Neon Lights
Dancing Under Neon Lights

pop, eurodance, synth-driven

Invasion of black marsh
Invasion of black marsh

Celtic folk music, powerful female vocals

Radiate
Radiate

k-pop, pop, catchy, rap, female vocals, female singer

Lost Love
Lost Love

Brit-pop, male lead

Cosmic Carousel
Cosmic Carousel

atmospheric synth-driven psychedelic dream pop

Mic Check Majesty
Mic Check Majesty

hiphop,sick,doop,inspired by connor price & Hacinah Mighty - Trendsetter,sick,dope,Newstyle,Slightly old Hip-hop vibe,hit song,rap,Singing female,

Gourmet Dragon Feast
Gourmet Dragon Feast

rattle uptempo folk electronic beat accordion duet

Spuds and Sprouts Parade
Spuds and Sprouts Parade

male vocalist,skiffle,folk,happy,folk pop

Fleeting Lovers
Fleeting Lovers

french gypsy jazz lively playful

Whispers in the Night
Whispers in the Night

techno dark atmospheric

生活的苦啊
生活的苦啊

钢琴 pop 感伤

Echoes in the Night
Echoes in the Night

slow ethereal dream pop

Reckless by the Living Beats
Reckless by the Living Beats

gritty hip-hop beat-heavy

In Search of the Beat
In Search of the Beat

1980s Italo Disco, Synth-heavy with Roland Jupiter, LinnDrum Machine, Keytar, Energetic Electronic Beats, Retro Synth Ba

Ingatlah Pada-Nya, Nak
Ingatlah Pada-Nya, Nak

pop poetic reflective

Weihnachtszeit Magie 2.1
Weihnachtszeit Magie 2.1

50s rockabilly elvis bill haley carl perkinson

Won't look back
Won't look back

catchy pop, electronic, soft alt rock, piano, guitar, bass, drums, sad, emotional