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

療癒地球之歌-1
療癒地球之歌-1

Mainly played on the piano, the melody is full of life energy.

Reggaesque Drift
Reggaesque Drift

psychedelic spacey ambient reggae, psychedelic rock, trippy, glitchy, synthwave, choro, samba beat, prog rock, jazzy

Don moen
Don moen

female gospel singer

Carl G - Pro Life
Carl G - Pro Life

Male voice, disco, funk, groovy

Forbidden Request
Forbidden Request

instrumental,experimental,avant-garde,noise,surreal,industrial & noise,sound collage,aggressive,chaotic,abstract,complex,manic,atonal,lo-fi

La Niña Victoria
La Niña Victoria

alegre acústico pop

Rise Up
Rise Up

suspenseful uplifting groovy edm

fierce battle
fierce battle

electro pop dance high bass piano cover of popular songs

สัพพีติโย
สัพพีติโย

pop rock R@B Havvy rap

Spectral Twins
Spectral Twins

electronic,electronic dance music,trance,house,pop,eurodance,euro house

Abyss
Abyss

orchestra, dark pop, alternative, strings, horns, woodwinds, classical, female vocals

My Sweet Yeatra
My Sweet Yeatra

folk tender acoustic, guitar, electric guitar, cinematic, khmer flute, female voice

Shredding the Cold
Shredding the Cold

hip-hop playful

Behind The Bookshelf
Behind The Bookshelf

ambient, haunted mansion, atmospheric, piano, retro, video game, 16-bit

No Cheeks
No Cheeks

pop electronic playful

Misty Fog
Misty Fog

melodic, violin, orchestral, rock

A Calling of the End Times
A Calling of the End Times

theatrical opera, fantastical, 70s, epical, eerie cello, musical theater, dramatic, duet, duet, duet, woman and man