quicksort.h

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

July 27th, 2024suno

가사

#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

추천

Le Monarque des Soupirs
Le Monarque des Soupirs

Indie orchestra, melancholic, melancholic, bass, violin, opera, romantic, female wide vocal range,

Country Roads in a Dubstep Beat
Country Roads in a Dubstep Beat

dubstep electronic gritty

Find the Spark to Reignite!
Find the Spark to Reignite!

Sea shanty, ominous female acapella, rhythmic, accent, sci-fi, futuristic, atmospheric, catchy, clean,

Snowflakes
Snowflakes

gothic folk, industrial

:D
:D

A aggressive Hard hitting DEEP DARK phonk, Very dark. pan flute

D6
D6

final boss intense epic battle, powerful, fast, orchestral, epic, dark war style, video game music, heroic, death battle

Increíble Aluvión
Increíble Aluvión

extremo piano rápido

Sazerac
Sazerac

chillout deep house

r
r

stilul pop pentru copii, cu influențe de muzică educativă. Acesta este vesel, energic și ușor de urmărit

Лимония
Лимония

dreamy psychedelic, slow, soul blues, guitar, tender Chill Electronic

Wonderland mentawai
Wonderland mentawai

Edm, female vocals, bass, uplifting

Mosquino, el Drag King
Mosquino, el Drag King

rap urbano energético

What have I become
What have I become

melodic dubstep bass

Summer Nights
Summer Nights

Rock psicodélico, Soul psicodélico, R&B/Soul, psychedelic

Joyful Harmony
Joyful Harmony

Lo-Fi,Hip Hop, chill, mellow, Dusty Piano, Tape Hiss, Vinyl Samples, Filtered Pads, Vynil Crackle, Bass,

Liebe ohne Leiden
Liebe ohne Leiden

appalachian folk anti-folk Appalachian, anti-folk, raw vocals, organic, A touch of melancholy, old German Male