quicksort.h

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

July 27th, 2024suno

Lyrics

#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

Recommended

Мальчик Полторашка
Мальчик Полторашка

акустический поп мелодичный

Whispered Promises
Whispered Promises

soul powerful female voices love ballad

Scat It Up - Alt. Ending
Scat It Up - Alt. Ending

Disco Metal funk

Dancing in the Rain
Dancing in the Rain

dubstep, hard rock, male vocals, beat, progressive, aggressive

Two different worlds
Two different worlds

sad 80's soft poprock

Rich poor
Rich poor

industrial, acoustic guitar, violin, electropop

Neon Indulgence
Neon Indulgence

female vocalist,electronic,electronic dance music,breakbeat,techno,playful,female vocals

Нет я не тот..
Нет я не тот..

zurna solo , epic emotional love ballad,emotional male,flamenco,Pride,poem, orchestra accompaniment,symphonic,Longing

54.  QUIÉN SOY ? PARTE 2c  Spain
54. QUIÉN SOY ? PARTE 2c Spain

powerfull, Afrobeat, Arab music, violin, inspiration, cinematic, female vocal, male vocal

Babambam
Babambam

Drill cool voice

Legende der Verdammnis
Legende der Verdammnis

metal, heavy metal, aggressive, drum, drum and bass, rock, hard rock, industrial,pop, electro,glückliche Frauenstimme

Entreprise trikker, er du klar?
Entreprise trikker, er du klar?

new wave, hip hop, trap, rap

Dino-trumpet
Dino-trumpet

playful pop

Похоронный блюз
Похоронный блюз

Sad Tearful guitar instrumental guitar piano blues

morning
morning

Acoustic Pop Gentle guitar, soft piano minimal percussion, nature sounds. Moderate tempo warm vocals. Calm morning vibes

Serve of Triumph
Serve of Triumph

rock,pop rock,folk rock,alternative rock,energetic,anthemic

《武当山剑客》
《武当山剑客》

Grand, varied, and heroic, blending Taoist arts with chivalry to embody the spirit of a wandering knight.