quicksort.h

Female celtic vocals, Epic cinematic scores, sweeping orchestral movements, adventure music

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

dealing with reality
dealing with reality

dramatic, dark, anthemic, swing, jazz, house, funk, disco, r&b, soul, electronic, deep, edm, motown, shuffle

Why
Why

Ambient house, heartfelt synthwave, epic emotional pop, sad soul,

Neon Nights
Neon Nights

k-pop and metalcore

Let's Have Some Fun
Let's Have Some Fun

upbeat pop bright melodies playful rhythms

Sopa de Tomate
Sopa de Tomate

classical choral, Renaissance chamber music, antique music, medieval opera

loooool
loooool

Standup Comedy

Grandpa’s Teeth Fell In The Sizzler Buffet
Grandpa’s Teeth Fell In The Sizzler Buffet

northern american music,regional music,country,honky tonk,traditional country,oldies,alienation

遠い神々のワルツ
遠い神々のワルツ

ballad, Melancholic, Piano, Ethereal and Cute female vocals, ACGN

Bossa Nova Seaside Stroll
Bossa Nova Seaside Stroll

Bossa Nova Seaside Stroll: Compose a soothing bossa nova track inspired by a leisurely stroll along a sunlit beach, with

Binary Blues
Binary Blues

rock,blues rock,blues,electric blues,classic rock

Enchanting Embrace
Enchanting Embrace

r&b, soul, slow, melodic, dark, trap, female vocal,

最後のメール
最後のメール

japanese West Coast hip hop, gangsta rap, 90's

Tumhari Aankhon Ka Jadoo
Tumhari Aankhon Ka Jadoo

acoustic pop melodious

BEARSLAYER:  Canto I - THE REVELATION OF BEARSLAYER - Scene 1: The Council of the Baltic gods:  The gods gather
BEARSLAYER: Canto I - THE REVELATION OF BEARSLAYER - Scene 1: The Council of the Baltic gods: The gods gather

female vocalist,rock,metal,melodic,passionate,energetic,heavy,uplifting,epic,complex,anthemic,cyberpunk

Faster Than Light
Faster Than Light

energetic frenetic breakcore

Foggy Winter
Foggy Winter

Celtic Rock 120bpm Make it deep

Island's Balance
Island's Balance

male vocalist,country,regional music,northern american music,outlaw country,progressive country,pastoral,love,warm

Paris Puddle Blues
Paris Puddle Blues

playful jazz swing