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

추천

like
like

house, electro, pop, techno, electronic, piano, dance, guitar

La fille aux chevaux et Bling Bling Bling v1
La fille aux chevaux et Bling Bling Bling v1

Fairy french pop girl voice mix Rap and French Pop

drake time again
drake time again

hyperpop dariacore jazztronica high tempo and intensity

Outstanding in His Field
Outstanding in His Field

edm k-pop refreshing heart beat tempo bubblegum

Invisible Burdens
Invisible Burdens

rock,alternative rock,post-grunge,hard rock,longing,bittersweet,introspective

Bàn tay cô giáo
Bàn tay cô giáo

lo-fi beats

omsk
omsk

a terrible military march, a gloomy chorus, rock

Midnight Cravings
Midnight Cravings

heavy metal 80s

Niegrzeczny Antek
Niegrzeczny Antek

taneczny disco pulsujący

Gül
Gül

Turkish darbuka, techno, deep, hard techno, electro, electronic, bass, house, drum, trance, mix, male voice, male vocal

Serene Monastery
Serene Monastery

528Hz,relaxing,solefeggio frequency, Gregorian chant,synthesizer,slow

Her Şey Seninle Başlar
Her Şey Seninle Başlar

melodik pop akustik

Groovin' in the Aisles
Groovin' in the Aisles

smooth r&b soulful

Tsunami selfie
Tsunami selfie

Drama Dubstep, freestyle Violin Beats, Dreamy violin

L'alphabet Magique
L'alphabet Magique

up-tempo pop

눈물(1)
눈물(1)

inero.piano.dark soul.

Performance Appraisal - Corporate Reality
Performance Appraisal - Corporate Reality

progressive, pop, soulful, humor, fun, beat, dhol mix, bass, drum