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

Yamiyo ni ukabu tsukiakari
Yamiyo ni ukabu tsukiakari

lo-fi Japanese city funk. Miku voice, Vocaloid. night-lovingscene. complex electroswing

สีไม่เหมือนเดิม
สีไม่เหมือนเดิม

Slow Rock guitar bending&bassline, punchy drum melodies-focused. So Sad verse, Builds tension Angry chorus, Sweet vocal

Storm Shelter Blues
Storm Shelter Blues

clean vocals rock heavy riffs

Catch You
Catch You

Hard rock, bouzouki solo, male voice

Under Water 5
Under Water 5

Caribbean, steel drum, aggressive, slow, underwater, rap, bluegrass, dark, slower, power spike

O Caderno
O Caderno

1960's Bossa Nova

Jajko na Skale
Jajko na Skale

surowy rock nieokrzesany

Shadows to Light
Shadows to Light

dark, emo, minor , acoustic guitar, Wave, powerful emotional female vocals

Dying Flame
Dying Flame

emotional, electro-pop, ballad, Arpeggio, sad piano, electric and acoustic guitar, violin

Warriors of Neon
Warriors of Neon

rock intense high-energy

Authentically Distorted | A self expression
Authentically Distorted | A self expression

artcore, cinematic, digital witch, synth, glitch rock, violin, piano, wubstep, brostep

Echoes of Eternity
Echoes of Eternity

Eidola, Progressive metal, male vocals, distorted guitar, heavy guitar solo intro,

Rap
Rap

Rap

足球 01(運動配樂)
足球 01(運動配樂)

upbeat energetic pop

Pejabat Pengadaan
Pejabat Pengadaan

alternative rock, ska, male vocal, violin, indie

kapradí
kapradí

heavy metal

Wind and Water
Wind and Water

folk acoustic poetic