quicksort.h

Epic cinematic scores, sweeping orchestral movements, heroic themes, and stirring emotional peaks, adventure,

July 27th, 2024suno

歌词

#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

推荐歌曲

Midnight Dance
Midnight Dance

pop ballad melodic country club dance

animals
animals

Animals beatbox, Animals musical beatboxer Gothic nu metal

Last Dance with You
Last Dance with You

rhythmic experimental new jack swing

Velvet Serenade
Velvet Serenade

instrumental,pop,traditional pop,jazz,vocal jazz,easy listening

Клич пионера (Rapcore, full)
Клич пионера (Rapcore, full)

contrabass accordion koto bassoon violin rapcore profound

Mountains in Yamato
Mountains in Yamato

soothing melodic folk

On Hold
On Hold

heavy acid metal, melodic blues

Lost in Translation
Lost in Translation

footwork, juke, ghetto house, hip hop, kawaii, cute, female vocals

zombie
zombie

POP, Electropop, dance, female vocale

Erratic Pulse
Erratic Pulse

breakcore electropunk experimental

v16
v16

Hyllning till Svenska krigare i Ukraina, Vikingarock, snabb och aggresiv men fin ballad , hjältemod, drönare i krig

Merci, Papa {pop}
Merci, Papa {pop}

atmospheric soul, uplifting pop

Smash and Shatter
Smash and Shatter

big house aggressive dubstep grungey punk

Lost in the City
Lost in the City

bass,mutation funk,electro,rave,

Thorns and Shadows
Thorns and Shadows

Dark Gothic Rock with haunting synths, intense female vocals, heavy guitar riffs, and brooding beats.

يا أميرة
يا أميرة

هادئ شعبي عربي

Love Someone You Don't Know
Love Someone You Don't Know

Bedroom Pop. uk drill.

My love
My love

Rnb, ambient, male voice