quicksort.h

Epic cinematic scores, sweeping orchestral movements, heroic themes, and stirring emotional peaks, adventure,

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

Empfohlen

나는 이런 결혼 않해
나는 이런 결혼 않해

k-pop, dance, male vocals

sir cum flex
sir cum flex

Samba, salsa, guitar, soul, bass, r&b, romantic, funk

工作加班曲
工作加班曲

歡樂 輕快 流行

50th1
50th1

electronic dream pop, fusion jazz happy, Indie, lo-hi, Dance, male voice

روښانه خوبونه (Bright Dreams)
روښانه خوبونه (Bright Dreams)

eurodance, synth-driven, high-energy with a pulsating beat and layered vocal harmonies, pop

live of light
live of light

Extreme Power Metal, aggressive, guitar riff, guitar lead

Stars of the Heart
Stars of the Heart

female vocalist,r&b,contemporary r&b,adult contemporary,love,passionate,melodic,warm

TOPRAK
TOPRAK

🐲, Extreme Power Metal, aggressive, guitar riff, guitar lead

Heartbeat
Heartbeat

powerful, opera, guitar, drum, 90s

Taitung Story 55.1a
Taitung Story 55.1a

Duduk with echo, arabic scale percussive, dreamy female vocals

Dance All Night
Dance All Night

chill cumbia, lofi, soft tones, female and male vocals, tenor boosted, atmospheric

Eternal Darkness
Eternal Darkness

anthemic solos fast thrash metal melodic

Alon's Special Day
Alon's Special Day

female vocalist,male vocalist,electronic,electronic dance music,house,electropop,dance-pop,electro house,energetic,party,repetitive,summer,rhythmic,uplifting

Beyond the Dawn
Beyond the Dawn

rock,pop rock,alternative rock,energetic,anthemic

Play That Funky Music Country Boy
Play That Funky Music Country Boy

hard rockin country funk rebellious

Waves of Time
Waves of Time

heavy metal, metal, aggressive

The Sword Saint: Edgar Cheung's Quest for Gold
The Sword Saint: Edgar Cheung's Quest for Gold

Epic, drum, dramatic, cinematic, beat, male vocal, orchestral