quicksort.h

Female celtic vocals, Epic cinematic scores, sweeping orchestral movements, adventure music

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

Koenigin Jeannine
Koenigin Jeannine

bass-heavy hypnotic trap-inspired

BOSS
BOSS

psychedelic electro swing, dark j-pop, very fast-paced, sarcastic, [‎vocaloid, miku voice], emotional playful

Wabi's Emo Love Saga
Wabi's Emo Love Saga

lo-fi emo rap moody

Dreamers in the Rain
Dreamers in the Rain

K-pop, a poignant, inspiring ballad full of warmth and comfort, Korean drama

In Our Future
In Our Future

Synthwave, Vaporwave, Happy, Hopeful

Сварщик нашей улицы
Сварщик нашей улицы

emotional, rock, guitar, pop, beat, electro

Space parasite
Space parasite

Krautrock, prog rock

Sit There and Watch
Sit There and Watch

minimalist haunting pop

Llamas de Malenia
Llamas de Malenia

épico powermetal rápido

Raaz
Raaz

orchestral, emotional, epic

Legendary
Legendary

boombap hiphop, progressive rap,sampling,funktype,triumph, piano

Soul Burns
Soul Burns

Jrock, Math rock, Deep, Emotional, Deep Rock, Emotional Rock,

Patrik i Hudik
Patrik i Hudik

male vocalist,hip hop,gangsta rap,southern hip hop,boastful,hardcore hip hop

Bici sul Mare
Bici sul Mare

Italian pop song, tube bass, flute solo, brass band, drums

LOVE IS ELECTRIC (TOMM DROSTE)
LOVE IS ELECTRIC (TOMM DROSTE)

ambient. slow tempo. techno melodies. slow tempo. UK dance beat pattern.

SARA
SARA

female, a capella, sad, emotional, melancholy, violin

Beyond the Stars 02
Beyond the Stars 02

Nu metal, French singer, death metal

5 AM
5 AM

rap, hip hop, trap, grudge, heartfelt, gospel