quicksort.h

Female celtic vocals, Epic cinematic scores, sweeping orchestral movements, adventure music

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

推荐歌曲

Бабочка
Бабочка

folk , female voice, guitar, flute,

9. Love, Grace, and Resurrection
9. Love, Grace, and Resurrection

piano. cello. violin. soul. dark, opera. ccm. flute

Genre Dilemma
Genre Dilemma

pop music x rock music x classical music x jazz music x hip hop x upbeat hypercore x edm music x country music

Ты не поймёшь
Ты не поймёшь

Pop, Rock, Alternative, Energetic, Upbeat,

大悲咒 - 佛教音乐版
大悲咒 - 佛教音乐版

Buddhist Chant, Meditative, Male Vocal, 60 BPM, C Minor, Wooden Fish & Bell

Anomaly #16052024
Anomaly #16052024

folk metal, gothic, anthem, catchy, upbeat, harp, bell, celo, rpg boss battle

Ангел и Демон
Ангел и Демон

классическая опера, pop

Para Marlene
Para Marlene

acústico suave romântico

Ночь дышит
Ночь дышит

smooth ballad poetic

Cool
Cool

Trap, Introspective, deep bass, minimal

This is a new hit!!!
This is a new hit!!!

rap, sad, bass, guitar, drum, drum and bass

心の音
心の音

リズミカル、キャッチー、エレクトロポップ

Sailing Away at Sunset
Sailing Away at Sunset

gentle acoustic folk

When You're Not Here
When You're Not Here

electronic futuristic

City Lights
City Lights

drum and bass,cute, orchestral, emotional, pop,pure

Sunny Orchard
Sunny Orchard

acoustic pop

"COWGIRL MISTY" RAP - ROCK - By Michelle McDonald
"COWGIRL MISTY" RAP - ROCK - By Michelle McDonald

female, hip hop, rap, Drums and guitars