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

추천

Smoke & Mirrors
Smoke & Mirrors

stoner doom jazz slow dark and soulful

lentamente muore
lentamente muore

guitar, drum, bass, atmospheric, futuristic, piano

Be Gila
Be Gila

k-pop acoustic texas blues

Komboza
Komboza

Surf, Acoustic Guitar

lo-fi introspective bedroom rap
lo-fi introspective bedroom rap

lo-fi introspective bedroom rap

Гэрэл асдаг шөнө
Гэрэл асдаг шөнө

synthesizer-heavy with pulsating bassline and catchy female vocals, pop, 2000s eurodance, eurodance

Saxy Rock
Saxy Rock

death metal, saxophone solo, synthesizer

Weird
Weird

autistic girl pop, PTSD pop girl

Second Chance Sorcery
Second Chance Sorcery

hip-hop introspective soulful

Char-Coo-Cha-Cooch and Twitch
Char-Coo-Cha-Cooch and Twitch

nostalgic electric emo

Midnight Pulse
Midnight Pulse

electronic high-energy hardstyle

Se eu morresse amanhã
Se eu morresse amanhã

Piano choro, jazz

真っ暗闇のBOX
真っ暗闇のBOX

heavy bass, dark, pop, Dark, r&b, soul, Black, funk, male voice, Black, heavy bass, Dark, Black

Turnitin Agreement
Turnitin Agreement

polka song; Polka has an upbeat, whimsical, and often humorous feel that can make any serious text sound funny and lig.

I Broke Free
I Broke Free

techno beat, male vocals, bass drops

The Cleansing
The Cleansing

Gut-wrenching emo rap with furious vocals and pulsing, banging drums. Full of rage and hatred. Absolute banger.

Metal\Prog 8-3-24K
Metal\Prog 8-3-24K

[Heavy Metal, Prog, Classical Melodies, 13/8 Time, orchestral back, Dynamic Drumming, Virtuosic Guitar, unique guitar]