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

Jenna's World
Jenna's World

hyper pop electronic

Это печально
Это печально

Rhythmic americana, male solo, background choir ditties, brass band

Every Moment V1
Every Moment V1

90s, pop, funk, r&b, boy band,

Moonlit Night
Moonlit Night

rhythmic symphonic pop

Ibu yang Tegar
Ibu yang Tegar

serene hindustani percussion bamboo flute dangdut slow tempo traditional arabic music melancholy

Morning Glory
Morning Glory

male vocalist,rock,pop rock,melodic,anthemic,uplifting,sentimental,pop,optimistic

Ti allontani da me
Ti allontani da me

rap, melodic, male voice, intense

nowWove D19
nowWove D19

Drum And Bass Goa Trance. Crisp clear Operatic-rap studio-quality vocals.

Følge Deg
Følge Deg

electro, edm, upbeat, pop

Beer on the Castle Hill
Beer on the Castle Hill

electric pop rock

Whisper of the White Dragon
Whisper of the White Dragon

soothing ethereal melodic chillstep

Lost in the Beat
Lost in the Beat

progressive house calm like lofi hip-hop drum and bass psytrance

Dobri svima Boga slavimo
Dobri svima Boga slavimo

ReggeRub a dub , reggae beat, regge deep bass, narodna,new warm sound, slow natural, happy stoned hash.echo, voice

Rolling Through Europe
Rolling Through Europe

electric melodic rock 80s

Broken Reflections
Broken Reflections

aggressive screamo male vocals drop c metalcore

Mictlán
Mictlán

electronic new wave opera symphonic, transitions violín and cello intensified final

krushclub x phonk
krushclub x phonk

Aggressive phonk, hardtekk, bitpop

Lui dire
Lui dire

R&B, SOUL, afrobeats, pop