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

Flicker
Flicker

Female Singer, Indie Pop, Upbeat, Alt-Rock, Rock, Agressive guitar riff, Melodic,

S@dn3$$
S@dn3$$

the same

AI for Better Health
AI for Better Health

pop electronic

穿越火焰,无所畏惧
穿越火焰,无所畏惧

强劲的鼓点 稳定的节拍 电吉他主导 钢琴伴奏 深沉的合成器 情感旋律 深情演唱 和声效果 高质量制作 平衡混音 坚定而有力 情感共鸣

Wild Rhythm
Wild Rhythm

rawstyle accordion-infused high-energy

隣のイケメンの耳からうどんが出ている件
隣のイケメンの耳からうどんが出ている件

ポップ シンプル キャッチー

Wanderer
Wanderer

female vocalist,male vocalist,folk,indie folk,singer-songwriter,contemporary folk

简单爱
简单爱

唢呐 手琴 二胡, intense, drum, ballad

Nina die komische Banane
Nina die komische Banane

HipHop, Rap, Pop, bass

Coração Partiu
Coração Partiu

eletrônico melódico pop

END CHAD. GET CINDY
END CHAD. GET CINDY

pop punk rock with male vocals slow

:⁠-⁠)
:⁠-⁠)

k-pop, sexy, reggae, big beat, unusual sample

Uzun tarlanın ucu
Uzun tarlanın ucu

kochari, yallı, halay,

Leven in Schalkwijk
Leven in Schalkwijk

Jolly Christmas, female voice, scream

Dreaming Together
Dreaming Together

pop uplifting anthemic

Rewind
Rewind

synthwave, male singer

Colorful Dreams
Colorful Dreams

grunge, electro, synth, electronic, trap, bass, rap, beat, upbeat, drum

The sticks full song test
The sticks full song test

150 BPM, Alternative/indie,indie rock