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

Recommended

Summer Vibes
Summer Vibes

hip hop banger

Orange Town
Orange Town

bossa nova, soft UK drill, electric piano, angelic female voice, arp, happy

The Fado Beatbox
The Fado Beatbox

Fado, Beatbox, BEATBOXING, instrumental, sad, slow, mellow, Portuguese guitar virtuoso

ABC Mayhem
ABC Mayhem

pop dance

Ara
Ara

male voice, metal, progressive, drum, guitar, bass

Oje Vita Mia
Oje Vita Mia

regga electro edm

One Day
One Day

sad, emo, rap, deep, heartfelt, xxxtentation

Бой С Тенью
Бой С Тенью

рок агрессивный энергичный

날 위한 노래
날 위한 노래

감성 r&b 어쿠스틱

구태윤 야구 응원가
구태윤 야구 응원가

신나게 응원가 빠른 댄스 힘찬 에너지틱 중독성 있는 야구 응원가

My song
My song

Disco

Caged in Illusion
Caged in Illusion

trip hop, bristol sound, sad, droning, locrian scale

Get to me 2
Get to me 2

piano, future house, mysterious vibe, experimental, trap, wobble

Trem Bala
Trem Bala

Rock, pop,. country, guitarra, saxofone, violino

Middle of Everything
Middle of Everything

Dark post-punk, slow, male vocals, minimal production

甘い夢のパティシエール
甘い夢のパティシエール

ポップ キュート バブリー

Calm Tide
Calm Tide

chillout, chillwave, female vocal

Presky - East Claustersauce
Presky - East Claustersauce

intense hypnotic shoegaze with increasingly intricate layered melodies