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

Langgam Sunyi
Langgam Sunyi

flute, piano, guitar, sad

Binary Sunset
Binary Sunset

dubstep, smooth instrumental jazz with heavy electronic bass, and driving percussion, atmospheric synth pads, jazz, smooth jazz

Waves of Calm
Waves of Calm

atmospheric post-rock instrumental beginning

Shattered Glass Dreams
Shattered Glass Dreams

acoustic guitar rap-hop rage

遛鸟蓝调
遛鸟蓝调

Blue,Pop,male vocal

Plus là
Plus là

folk-pop indie acoustique

ОЛег
ОЛег

pop rock

BANANANANAAA
BANANANANAAA

Neurofunk, Tearout, Drum & Bass.

Свет Новых Звёзд
Свет Новых Звёзд

энергичный рок drum and bass, rock, hard rock, ,guitar, japanese

Houseparty Pt. II
Houseparty Pt. II

Chill-House, Bass, Drums, Male Voice

Cafe Carioca
Cafe Carioca

quick tempo happy rhythmic bossa nova

At sixteen's prime we formed a bond
At sixteen's prime we formed a bond

Emotional, little blue, heartfelt, metal music violin, drums, slightly calm and frustrated female voice tone, guitar

TIO JUAN - Os animais quero ver
TIO JUAN - Os animais quero ver

infantil, kids, bass, drum and bass, pop, mellow trap, animada, ritmada, alegre, divertida

你拨的电话暂时无人接听
你拨的电话暂时无人接听

Mandarin, Single Clear female vocal, K-pop

Draw the Line
Draw the Line

russian grum

Милана, рідна, сьогодні день твій
Милана, рідна, сьогодні день твій

Clear vocals, atmospheric, sweet male voice, eerie, swing, dreamy, melodic, electro, sad, emotional

アズライト・スカイ
アズライト・スカイ

Power metal, Male, Powerful, fast, aggressive, intense