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

Signal Fade
Signal Fade

song about fading transmissions. downtempo,ethereal,dubstep,

Heart Strings
Heart Strings

country, rockabilly, blues and folk. deep resonant voice

Shadows of Obsidian
Shadows of Obsidian

psych doom metal heavy dark

в детстве
в детстве

man vocal, guitar, sad

私を解放して
私を解放して

modern Japanese love

Broken Loaf
Broken Loaf

dark hip hop gritty trap

Sunny Day
Sunny Day

pop soft acoustic bright

それぞれジュブナイル
それぞれジュブナイル

classic jazz, orchestra, japanese rock, female whispering rap, positive despair, mellow modulation, piano, guitar, drum

Echoes of the Steppes
Echoes of the Steppes

melodic folk symphonic metal russian

Celestial Harmonies
Celestial Harmonies

instrumental,new age,ambient,ethereal,atmospheric,spiritual,meditative

LOVE IS ELECTRIC (TOMM DROSTE)
LOVE IS ELECTRIC (TOMM DROSTE)

techno. dark. bass sequencer. fast tempo. fast melodies., trance

Hulurkan tangan
Hulurkan tangan

male vocals, male voice, Pop, dance pop, ethereal,

Тени пути
Тени пути

sad, emo, emotional, beat, piano, flute, back vocals

악어떼
악어떼

upbeat, pop, rock, beat, flute, piano, smooth, jazz, funk, trance, trance, trance

Follow Your Heart (Spanish)
Follow Your Heart (Spanish)

ambient, electronic, synth, 80s, pop, orchestral, beat, upbeat, disco, drum, electro, romantic, bass, romantic, rock

Bangkit Hadapi Semua
Bangkit Hadapi Semua

Japan Pop Male Vocal

Kisah Hewan-Hewan Kecil
Kisah Hewan-Hewan Kecil

Verse 1: Di hutan yang rindang, ada beruang Dia gemuk dan lucu, suka bermain-main Mencari madu, di pohon bunga-bunga Ber

Luz Eterna
Luz Eterna

distorted heavy stoner rock, tool, progressive metal, español chileno

Cơn Mưa Tháng Tám
Cơn Mưa Tháng Tám

ambient, rain, male voice, deep, new age, world music, hang drum, tabla