quicksort.h

Epic cinematic scores, sweeping orchestral movements, heroic themes, and stirring emotional peaks, adventure,

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

추천

hayat
hayat

rap, trap

Lost in the Echoes
Lost in the Echoes

raspy electric emo punk

Rising Spirit
Rising Spirit

Artcore: high BPM, emotional rhythm build-ups, dramatic atmopsheres, piano-based, DnB fusion, distorted female vocal

ループ2
ループ2

guitar. piano. Live music. night-lovingscene. j-pop. indie-rock.Alternative Dance.Nu-disco. post-punk. female pop upbeat

Ritmo del Amor
Ritmo del Amor

energetic Salsa

The Drama Ticket Blues
The Drama Ticket Blues

acoustic guitar, piano, funny

Dance with Darkness and Light
Dance with Darkness and Light

melodic orchestral symphonic

Enquanto eu respirar
Enquanto eu respirar

Rock alternative, hard rock, male vocals

Ancient Quest
Ancient Quest

jrpg ost ambient holy hood beat tribal atmospheric slowed trap

Chasing Stars
Chasing Stars

slow paced hip-hop, rnb, trap,house, energetic, smooth, deep

Dark
Dark

Atmospheric Electro Music, Calm, Sad, Deep, slow

댕춍이 더티 0801
댕춍이 더티 0801

90s, chiptune,, puppy, loop, addictive, meme,dirty, kitsch, poor, down, blue

Staring Through My Rear View
Staring Through My Rear View

gritty voice, rap, hip-hop, 90's rap, trap, soul, dirty south, mixtape, Bounce, bass, fusion,

Far Away from Tranquility
Far Away from Tranquility

ambient, ambient trap, ethereal chill, lo-fi, ambient electronic, chill, electric piano, rhodes, sad, emo

Allegra Sinfonia
Allegra Sinfonia

Children, electropop, synth, pop, rock, electro, beat, symphony, guitar, piano, drum, flute , sax, synthwave, choir

They can't Sing
They can't Sing

Robot voice, electro pop, cyberpunk

Позови меня с собой
Позови меня с собой

rock, drums, bass guitar, strings, piano, female vocal, reverb, depressed, screaming

Skeleton Waltz
Skeleton Waltz

Waltz of skeletons dancing in the graveyard played by accordion