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

Lost in Space and Time
Lost in Space and Time

industrial, heavy metal, guitar, violin, piano, powerful. atmospheric, female vocals, synth, smooth, dreamy

Feels like Summer (When I'm with you])
Feels like Summer (When I'm with you])

Slow, Upbeat, Major Key, Drop D Tuning, Deep Bass, House, Electric Guitar, Hand Pan Drums, Reverb, Deep Vocals

tak pasti
tak pasti

dakar math-rock

Wake Up
Wake Up

Beautiful husky Female Vocals, female pop-rap, gospel disco, edm,

inspiração
inspiração

sertanejo masculino

Jungle Harmony nr3
Jungle Harmony nr3

rhythmic tribal world

Perdido y Extraño por Siempre
Perdido y Extraño por Siempre

mellow, bass, drum,guitar, tuba, accordion-driven, Regional Mexicano, grupero, norteño, male vocals

Luka
Luka

emotional, mellow, piano

Inner Battles
Inner Battles

atmospheric melancholic trap

In the Doghouse
In the Doghouse

Progressive Rock, Opera, Theatrical. Theatricality. powerful voice, wide range, extravagant style, Iconic composer.

The Haven
The Haven

1970's rock n roll

Karma Waves
Karma Waves

female vocalist,contemporary r&b,dance,dance-pop,electronic,pop,rhythmic,love,melodic,energetic,playful,warm,party,electropop,sentimental,breakup

Eternal Shadows (Extended Mix)
Eternal Shadows (Extended Mix)

dark eerie electronic

Rock Will Never Die(ジェネリック平沢進)
Rock Will Never Die(ジェネリック平沢進)

dark technology, male korean, world music, electronica, progressive rock, mystical experimental techno, synthetic

Bad Mussels, Cruise Spray Problem
Bad Mussels, Cruise Spray Problem

funky traphouse-jungle-disco-polka-edm fusion

From Waste to Wonder
From Waste to Wonder

hip hop country rock melodic pop rock

Broken Melodies
Broken Melodies

female ukulele

speed G   vol.5
speed G vol.5

NightCore, high-speed, , hard core, anime, trance, techno, piano