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

추천

Marche Royale
Marche Royale

grandiose baroque regal

笑臉
笑臉

Dramatic, very slow paced Mandarin song, straight forward, male vocal, melodic, piano solo, emotional chorus singing

My Own V2
My Own V2

hip-hop and pop

Weight of shame
Weight of shame

Pop, dance, techno, beat, edm

Drill of Life
Drill of Life

rap urban

Dance All Night
Dance All Night

funk fast energizing

Souls' chorus fast
Souls' chorus fast

brilliant loud progressive rock, Gibson acoustic guitars, strings, female voices chorus, fast beat, 7/8 tempo

2am
2am

90s noise rock, shoegaze, female vocals, melancholic, sad pop, twangy guitars, droning intro, lethargic

shadmehr RrMeke
shadmehr RrMeke

pop , guitar , beat, bass, dance

Liebe
Liebe

groovy dream pop

Love yourself
Love yourself

trap, drum and bass, epic, piano, dreamy, guitar, pop, male voice

The tiger
The tiger

House, EDM, trance, pop, piano, dance, chinese traditional

Ночь
Ночь

Female vocal, deep bass, minimal, emotional, synthesizer, street music, energy, alternative dance, play music, beat

I Believe
I Believe

dreamy, psychedelic, soul, rock, r&b, voice female, funk, jazz, ballad, metal, techno, pop

bouncy deep
bouncy deep

house, techhouse

The Ы song
The Ы song

Ы. russian accent. YIIIIIIIIIII

thank you
thank you

female soft vocal, melodious,sad, soft, piano, guitar, mellow, smooth