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

SWEETy
SWEETy

jersey club, new jazz, dreamcore with citypop and synth-pop

Sin Condicion
Sin Condicion

bass rock power epic guitar solo

Dreaming with you-- remix
Dreaming with you-- remix

70's soul jazz trap beat Koto boom bop

I en annan famn
I en annan famn

Swedish Roots Reggae, catchy upbeat summer happy chorus

The Rhythm of the Rain
The Rhythm of the Rain

new wave, post-punk, vaporwave

Beyond the Horizon
Beyond the Horizon

emotional pop, ballad, piano, synthwave, R&B, Soft for verses, powerful for chorus, Connect with themes of loss

Summer rain
Summer rain

Rubber dub reggae saxophone trumpet

Spectrum 144
Spectrum 144

Trip Hop. Chillstep. Dark, psychedelic, spiritual, experimental, progressive.

Draufgänger als Optimist
Draufgänger als Optimist

atmospheric emo girl group

Người Chance Kim
Người Chance Kim

electropop, guitar, pop, electro, bounce drop, emotional, rap

Psychedelic Fever
Psychedelic Fever

psychedelic rock intense heavy

Kaas Koop Fury
Kaas Koop Fury

rock,metalcore,metal,post-hardcore,hardcore [punk],hardcore,bass,electric guitar

laa
laa

piano,keman

Bayangan Rahasia
Bayangan Rahasia

instrumental misteri orkestra

Arabic
Arabic

indie, Lo-Fi

Каждое слово твое
Каждое слово твое

folk, танец, Хип хоп

Lawn Mowing Aliens
Lawn Mowing Aliens

Xenharmonic Phonk, Microtonal Glitch Witch House, Brutal Math Reggae, Classical Glitch Death Metal, Smooth Surf Dubstep

Dream Beer Sea Beach
Dream Beer Sea Beach

dreampop , dreamy, psychedelic