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

추천

가지 말고 (Don't Go)
가지 말고 (Don't Go)

Male, Melodic K-pop, Upbeat with a melancholic edge. Strong Vocals, Boy Band

Sunset Dreams
Sunset Dreams

disco, pop, beat, bass, electro

Gonca Kızım
Gonca Kızım

mutlu, catchy, pop

**Title: Yaari Ke Rang**
**Title: Yaari Ke Rang**

indie , soulful , heart touching , hindi , melody

Wierze
Wierze

New Orleans Chillwave

Cringe Brainrot
Cringe Brainrot

synthwave, initial-d, lo-fi, breakcore

4 Время как река ( рок)
4 Время как река ( рок)

Crying , northern soul, , ebm, enough

Oh, Creedy the cat
Oh, Creedy the cat

Catchy Instrumental intro. [electro swing-Cat house]. sweet female vocal, [Cat house]

Cita Cita Syahrul
Cita Cita Syahrul

korean drama style mellow ballad

Emerald
Emerald

Catchy Instrumental intro. EDM-Pop Song with Ambients Parts, Femalel Voice, with energic fun crystalic sound

지구촌 선거의 해
지구촌 선거의 해

Ballad, orchestra, cinematic, drum and bass, guitar, string, trumpet, flute, Elastic EDM, female male voice chorus, pop

Welcome to The Rave
Welcome to The Rave

spoken voice, echo, tribal synthwave calm psychedelia

music5
music5

sofa music,cafe music,relaxing,must be an intro and outro, ending at 4:30,Guitar.Saxophone.African drum

Shredded Soul
Shredded Soul

hard rock heavy speed metal

Serene Flow
Serene Flow

acoustic oriental chill

Teardrops on Speed
Teardrops on Speed

fast sad phonk