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

Screaming in Red
Screaming in Red

Power Metal, Symphonic Metal, Speed Metal, Male voice

Αξιον εστι 3
Αξιον εστι 3

pompous arabesque urban *hiphop* in staccato w/ a Greek folk music flavor (clarinets,. flutes) and a bucolic feel

Dark Sunshine
Dark Sunshine

metal electric

สบาย สบาย
สบาย สบาย

rock, metal, guitar, drum, bass

Electric Heat
Electric Heat

indie electro synth-pop

Little Waywatcher
Little Waywatcher

Acoustic, Folk, Dark Folk, Ambient

Самир обманщик
Самир обманщик

поп медленная акустическая

Shadow Dance Lady
Shadow Dance Lady

eery, creepy

Вертинский (КоТ_product)
Вертинский (КоТ_product)

Trance vocal, vocal house, 160bpm, vintage Background, vinil.

City Lights
City Lights

heavy bass,Glitch hop, synths, slow tempo,female bossa nova, uk drill, electric piano

Я буду с тобой
Я буду с тобой

deep male voice, rap, theme, oi, trap, ballad, bolero, uk drill, g funk, melodic, bass, d minor, electro

Burning Love
Burning Love

r&b emotive soulful

知的財産のわんすとっぷショップ
知的財産のわんすとっぷショップ

italian opera, jazz, rap, electro

Miguel Miguel
Miguel Miguel

rhythmic latin pop

Banjo Troubles
Banjo Troubles

folk,whistle,fiddle,cow bell

Speed Demon1 策
Speed Demon1 策

highspeed energetic electronic

Unique
Unique

Intro: Ambient; Verse1:jazz; Pre-chorus: Funk

Кошачьи ночи
Кошачьи ночи

pop playful rhythmic