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

推荐歌曲

Bullet
Bullet

Emo trap, trap, memphis, 808 beat, sad, despair, suicidal, goth, emo, trill, emotional, melodical, piano

Echoes of Freedom
Echoes of Freedom

male vocalist,pop,melodic,energetic,rhythmic,playful,blue-eyed soul,pop soul,strings,soulful,piano

челябинск
челябинск

disco, electro, rock

Enormously Loud Sawtooth
Enormously Loud Sawtooth

"hardcore EDM":1.6, laser canon, laser kick, rave music, enormously loud sawtooth bass, hardstyle, brutal 7.0, screech

Summoning the Elements
Summoning the Elements

modern violin, modern violin, battle tense atmospher, female voice, epic choir, melancholic

I Rise, I Soar
I Rise, I Soar

Male, Powerful, smooth, and soulful, Violin, dramatic, r&b

All Together
All Together

flamenco, mutation funk, funk, bounce drop, jazz, bass, rap, drum, guitar

Nebula Drift"
Nebula Drift"

Lo-fi Hip Hop, Slow and Quiet, Soothing Synthwave, Soft Pads, BPM60

Jasmine Blooms
Jasmine Blooms

thai folk pop melodic

Twisted Love
Twisted Love

dark haunting progressive scary 80s roadsong

Bounce to the Beat
Bounce to the Beat

dance electronic

Susurros de la noche encantada
Susurros de la noche encantada

techno piano guitarra electrica voz masculina gruesa, powerful

Skyline Drift
Skyline Drift

aggressive high energy rap

고민중독
고민중독

heartfelt

River of Love
River of Love

acoustic pop

Tines Tapferkeit
Tines Tapferkeit

male vocalist,hip hop,conscious hip hop,conscious,neo-soul,rhythmic,sampling,boom bap,urban,introspective,political

Ultra Fast Future
Ultra Fast Future

experimental splittercore super 8 bit ultra-fast