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

추천

Universexual
Universexual

EDM, rap, trap,

Little jam
Little jam

old video game, unsetteling, clean sounding, dreamcore, weirdcore, dark wave, melodic, up funk, jazzcore, slushwave

Devil's Lullaby
Devil's Lullaby

rock intense metal

Thunderous Valor
Thunderous Valor

male vocalist,metal,rock,melodic death metal,death metal,melodic,energetic,heavy,aggressive,dark,cold

Жёсткий удар
Жёсткий удар

aggressive, tense male vocals, raw and unrelenting energy, hard-hitting beat, 180bpm

Hell on the High Seas
Hell on the High Seas

neoclassical metal, Phrygian mode, melodic, virtuoso, lead guitar, epic, dynamic

Эгоист
Эгоист

Big beat, electropunk, breakbeat hardcore, electronic rock, rap. [male voice], [guitars, saxophone]

Bring the Funk, Raise the Roof
Bring the Funk, Raise the Roof

soulful funk electrifying

i didn't ask you
i didn't ask you

old punk rockabilly, vibrato roadhouse, deep bass, hypnotic darkwave, saw, appalachia, bluegrass, folk vibe chill porch

Bye Bye Baby
Bye Bye Baby

playful upbeat electro-swing

Giraffe Onesie Dreams
Giraffe Onesie Dreams

A melodic song with an emphasis on keyboards with soft vocals, catch acoustic

Misterio en la Noche
Misterio en la Noche

oscuro inquietante pop

Kretoszczur
Kretoszczur

trap, UK drill, male vocal, emotional, large bass

Swing
Swing

ska, electro swing, drum and bass

星の夜
星の夜

kawaii Metal, baby metal, kawaii voice

Solo un Gioco
Solo un Gioco

portoricano reggaeton

Acidic Echoes
Acidic Echoes

Song in the style of NewJeans. kpop,korean,asian,cute,dance

Pięść Skierowana w Prawo
Pięść Skierowana w Prawo

punk surowy energiczny