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

Cosmic Exploration
Cosmic Exploration

Psychedelic groovy

Text Me Back
Text Me Back

Male, Female, Synth Leads, Electronic Drums, Bass Drops, Percussive, White Noise, harmonic minor, 130 BPM, Hip Hop Dubst

桃花扇 slight modifications v3
桃花扇 slight modifications v3

opera soprano,anti-folk, erhu, dizi,sheng,traditional Chinese music, refined, ethereal,

Yaadon Ke Mausam
Yaadon Ke Mausam

female vocalist,male vocalist,filmi,asian music,regional music,south asian music

1
1

lofi jazz fashion lovesong pop emo citypop

Foolish Fools
Foolish Fools

circus harmonica accordion guitar

Shadows in My Mind
Shadows in My Mind

eerie dark symphonic, gothic, male vocal, very sad

CoFFe
CoFFe

substep, melodic riddim/colour bass

Today is the start of a new day 322
Today is the start of a new day 322

celestial, dynamic, voice, male voice, epic, trance, downtempo, chill, ambient, dance, catchy, acoustic, ethereal, pop

Láska je zlo
Láska je zlo

hip hop, guitar, chill

Stamena
Stamena

afro, tech, Female Vocal, , house, techno

Munay Taki (Love Song)
Munay Taki (Love Song)

andean heartfelt traditional

Broken love
Broken love

celtic, catchy, medieval, dark, electronic, trap, sweet female vocal, Violin, piano, flute, magical

Tokyo Vibes
Tokyo Vibes

shamisen hip hop japonais taiko entraînant basses lourdes

Girl at the Rodeo
Girl at the Rodeo

contemporary country, upbeat, male singer, bittersweet, pop country

Shit out Ukr v6
Shit out Ukr v6

brutal slow drill trap crystal clear and sharp high energy sound/dramatic, epic, experimental/flutes harps chords

Street Life
Street Life

Soft Jazz, Female Voices, Nylon Guitar