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

Empfohlen

Armando filho - Nenhuma condenação há
Armando filho - Nenhuma condenação há

melancholic, acoustic, pop, guitar, house vocal

Epic Heroic Flames
Epic Heroic Flames

Orkestra, Epic, Rock, Metal, opera, bass trap, guitar trap, drum trap

Когда Реальность Ломается
Когда Реальность Ломается

электрический рок меланхоличный

Ritmo del Sol
Ritmo del Sol

male vocalist,reggaeton,latin,regional music,latin pop,hispanic american music,hispanic music,summer,party,rhythmic,latin dance

光る夜
光る夜

エレクトロ ポップ キャッチー

夜の街
夜の街

ジャズ スローテンポ サックス ピアノ ウッドベース

Endless Slumber
Endless Slumber

romantic funk

Quantum Masquerade
Quantum Masquerade

male vocalist,rock,blues rock,southern rock,warm,melodic,boogie rock

Mad Sun
Mad Sun

rhythmic dub reggae groovy

Gone but Not Forgotten
Gone but Not Forgotten

anime, japanese, r&b, emo, emotional techno mandolin, soul, pop, violin, piano, electro, edm

Dama de la Noche
Dama de la Noche

pop bailable relajado

Slow pace for spa massage.
Slow pace for spa massage.

Alto fiddle, Relaxing rhythm for spa massage shop

Gone But Not Forgotten
Gone But Not Forgotten

pop emotional ballad

Toast
Toast

J-Rock, Japanese Anime Music, Rock, J-Pop, instrumental, piano, good mood,

Darn Keys gone
Darn Keys gone

Pop, Upbeat, Catchy, Guitar, Synth, Male/Female Vocals

Входные двери
Входные двери

Aggressive rap, trap

Mist Face
Mist Face

trap memphis-phonk hardstyle

De Floppies - ProCreate
De Floppies - ProCreate

Nederlands, rock ballad, eighties

Haunted By Memory
Haunted By Memory

old school country,haunted trap house

Eternal Sparkle Dedicated to Liberace and his foundation
Eternal Sparkle Dedicated to Liberace and his foundation

Musical, Ballad, Orchestra Opera blues swing country popular jazz and big band piano