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

Moonlight Whispers
Moonlight Whispers

Piano, eletro bass, vocais de homem, bate o grave, funk bonde do tigrão,bonde do vinho, baixo, vst sytrus

TINGZHENG听筝
TINGZHENG听筝

Chinese GUZheng DRUM&BASS

Shining Stars
Shining Stars

dubstep techno trance

Sushi Sushi Go Go
Sushi Sushi Go Go

futuristic pop

Life of a guy
Life of a guy

upbeat, electro

Mano Dura Tapia V2.1- Tigres UANL
Mano Dura Tapia V2.1- Tigres UANL

stadium,epic electrifying,crowd-pleasing,high-energy, motivational, triumphant,powerful,dynamic,male vocals,solemn, sfx

Amanda's Wisdom
Amanda's Wisdom

country fast-paced

Mera Pind
Mera Pind

punjabi folk

Flavorful Bliss
Flavorful Bliss

male vocalist,electronic,pop,indie pop,synthpop,electropop,melodic,optimistic,bittersweet

God's love
God's love

Soft guitar

Nature's Call
Nature's Call

groove metal rhythmic heavy

Бутерброд
Бутерброд

светлый поп ритмичный

Shadows of the Night
Shadows of the Night

atmospheric haunting ambient

Powerful Anime Polka🌟
Powerful Anime Polka🌟

Minnesotan polka, anime, Tokyo J-rock, accordion solo

位置
位置

70s chill, emotional, soulful, adult contemporary, vaporwave, synth breakdown, sophisticated, sharp, crisp

Electric Dreams
Electric Dreams

r&b soul jazz progressive rock j-pop hi-fi ballad hip-hop

Endless Fight
Endless Fight

rock anthemic

Untuk Anakku
Untuk Anakku

male voice