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

Beyond The Horizon
Beyond The Horizon

Dubstep Electronic dance music

Electronic Groovequake
Electronic Groovequake

male vocalist,electronic,r&b,electronic dance music,funk,rhythmic,electro,synth funk,warm,energetic,psychedelic,party,playful,summer,futuristic,turntablism,funky,groove

Get Down Funky
Get Down Funky

funk bass catchy breakbeat oldschool

Dancing in the fields
Dancing in the fields

folk, natural, calm, slow, soft voice, happy, joyful, acoustic, chill

Просто музика
Просто музика

Deep voice of a male, Dark Clubbing, Neurofunk, Dark Techno,

Fireworks
Fireworks

emotional ethereal woman power voice, electronic pop, sad, depress, ethereal, powerful, emocore,j-pop

Let's Move Tonight
Let's Move Tonight

Dreamy Bubblegum Dance, catchy melody, ambient house

Белый лимузин
Белый лимузин

electronic pop rhythmic

The Ballad of Duke
The Ballad of Duke

Classic indie-western

From the Start
From the Start

Pop,Alternative Pop,Alternative,Alternative Rock,Indie Rock,Indie Pop,Indie,Pop-Rock,Happy,Сheerful, upbeat

Bassline Unchained
Bassline Unchained

electronic,electronic dance music,trance,energetic,house,hypnotic,repetitive,psychedelic,mechanical

Sweet Dreams
Sweet Dreams

soothing lullaby piano

Скотт Пилигрим против всех
Скотт Пилигрим против всех

rock, guitar, drum, drum and bass, drum and bass, pop, hard rock

Sotto le Stelle" (Under the Stars)
Sotto le Stelle" (Under the Stars)

Catchy, vibrant Italian rock-pop with rock guitar & infectious beats, warm emotive vocals, and an upbeat, dynamic rhythm

여름의 유토피아
여름의 유토피아

indie, indie pop, folk 여름날에 드라이브 하면서 듣는 노래, 바람