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

Gute Nacht und Süße Träume
Gute Nacht und Süße Träume

psychedilischer underground deutsch 90s hiphop

games and deflections
games and deflections

emotional, rock, guitar

Fracciones Equivalentes
Fracciones Equivalentes

pop, rock, electro, kawaii metal

Whispers in the Midnight Air
Whispers in the Midnight Air

rap with beat boxing

Kuli Gambir
Kuli Gambir

acoustic melancholic folk

City Lights
City Lights

acoustic, rock, anime, female voice, cinematic, orchestral, soul

二十四桥明月夜
二十四桥明月夜

中国风, 干净, 悠扬, 女声,清亮,温柔

Ignite the fire rev2
Ignite the fire rev2

symphony, rock, chorus and melody,minor,Industrial metals,Power Metal, aggressive, fast tempo, guitar, progressive

Feel Again
Feel Again

emotional progrssive house drop

Jazzbird Echoes
Jazzbird Echoes

electroswing x vaporwave x jazz

disconnected dreams 🎙️
disconnected dreams 🎙️

1960s wall of sound

Terms of Service - Suno AI
Terms of Service - Suno AI

Baroque, hiphop, high-energy and smooth beats, fire, infectious

Mutti
Mutti

Episch,Live Rock,Ballade

DIO夢想
DIO夢想

電子 動感 年少熱血

As Within, So Without
As Within, So Without

rap rock, blues, alternative, big beats, eclectic, male voice, powerful, cinematic

GONJAK KELURAHANKU
GONJAK KELURAHANKU

POP, romantic,

Midnight Serenade
Midnight Serenade

classical piano instrumental

un Dio
un Dio

medieval guitar, drop medieva, flute