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

추천

Are you out yet?
Are you out yet?

dream pop, pop, beat, guitar, bass, dramatic, sad

Moje Rodina
Moje Rodina

emotive heartfelt pop

Esto también es todo
Esto también es todo

Inspiring ballad style with elements of progressive rock

Pyar ka safarnama
Pyar ka safarnama

Pop Electronic R&B Dance Synth-pop Electropop Chillwave Future R&B Synthesizer Drums Bass Keyboard Percussion Downtempo

Srdce nehasnou
Srdce nehasnou

pop, beat, guitar

Neon Heartbeat
Neon Heartbeat

female vocals, 2010s edm pop, edm, pulsing synths, pop, soaring female vocals with layered harmonies

むらまさ
むらまさ

female vocals, [dark-JPOP], [Yakousei Electro House-dark Jazz Pop-Funk pop-Demon pop], [New Rave], [32 bit]

Night Lights
Night Lights

afrobeats drill high tempo club banger hiphop uptempo

Cosmic Destinies
Cosmic Destinies

electronic,electronic dance music,drum and bass,energetic,rhythmic,house,party

Don’t Bring Me Down
Don’t Bring Me Down

epic, reggae, cinematic, hip hop, trap, female vocals

피폐
피폐

dark,piano,man,sad

灼熱のボレロ
灼熱のボレロ

灼熱のボレロ,fire, bolero

Heartstrings
Heartstrings

bossa nova, uk drill, electric piano. K-POP

Chase Away the Fears
Chase Away the Fears

live new metal concert, guitar, bass, drum

Jeda Rasa
Jeda Rasa

Slow beat heavy grunge music, low male vocals, dramatic, horror, dark, low male voice

Asora
Asora

psychedelic, eerie, spooky, ambient, weird. scary, fog, swamp

Rise of the Machines 4.0
Rise of the Machines 4.0

hammond organ, blues, bhangra, rock, tango, alte, metal, hard rock, Bach, orchestra, bass, violin, epic, chorus,

darkness at the break of noon
darkness at the break of noon

western , cowboy, arpeggios,

Pixel Dreams
Pixel Dreams

lo-fi nostalgic dreamy

Diana
Diana

Gothabilly, psychobilly, gothic rock, surf rock, surf, oldschool psychobilly