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

推荐歌曲

Dance All Night
Dance All Night

energetic edm electronic

Sinfonia Divina das Almas
Sinfonia Divina das Almas

Baroque music. Harpsichord, violin, viola da gamba, cello, flute. Soprano/tenor duet. Express love, passion, hope

Shinjuku Vibes
Shinjuku Vibes

japanese funk high-energy lo-fi

nikiDUA - Klamar Paz 44
nikiDUA - Klamar Paz 44

reggae, atmospheric, powerful male vocal, screaming, layered male voice, random pitch, male vocal, energetic, ska reggae

ミッドナイトブルー
ミッドナイトブルー

vocaloid, guitar, emotional

Mysterious Freemasonry
Mysterious Freemasonry

mysterious Grand Gothic

Body Language
Body Language

1960's baroque-rock

Сладкие ножки Вэинда
Сладкие ножки Вэинда

синтезаторный ритмичный поп

Night Vibes
Night Vibes

lo-fi city gamelan synthwave

Groove in Your Soul
Groove in Your Soul

funk electric high energy

Любовь без ответа
Любовь без ответа

поп акустический эмоциональный

Estrelas e Sombras
Estrelas e Sombras

Pop, emotional,Rock,Brazilian pop music, soul

deep house4
deep house4

ambient, deep, house

wind
wind

instrumental cinematic atmospheric, piano, female voice , female song

West Coast Glide
West Coast Glide

hip hop,west coast hip hop,hardcore hip hop,gangsta rap,aggressive,90s

Dressed in Memories
Dressed in Memories

Upbeat acoustic guitar, lively piano, cheerful strings, steady drums, harmonious vocals, vibrant, Alto female vocal

Когда в пустыне
Когда в пустыне

мелодичный поп акустический