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

ミニマリスト
ミニマリスト

electronic pop

涙の日曜日には
涙の日曜日には

80年代 R&B、

月華の幻影
月華の幻影

Dark Fantasy J-Rock

malay jash
malay jash

Spanish, danc, clarinet, bass, guitar، Kurdish

Sunyi
Sunyi

Ballad romance,

Düzelen Dem
Düzelen Dem

kurdish psychedelic folk

Pixelated Heartbeats
Pixelated Heartbeats

rock,pop rock,alternative rock,energetic,anthemic

If youd just be like me, perfect and rich
If youd just be like me, perfect and rich

6. #StrengthThroughHope Verwendung: Beiträge: Präsentieren Sie Geschichten, in denen Hoffnung zur Quelle der Stärke gew

Elevate the Night
Elevate the Night

dance,pop,electronic,electropop,electronic dance music,electro,future bass,awesome,fun

Trapped in the Beat Matrix
Trapped in the Beat Matrix

glitch-hop electronic experimental

Midnight Embrace
Midnight Embrace

ballad dark haunting

I Go To My Happy Place
I Go To My Happy Place

country,pop, upbeat

phases of the moon
phases of the moon

lofi r&b slow sad, piano, violin.

Melon Bun
Melon Bun

melodic house, dreamy electro, italo disco

miss you
miss you

stutter house

Unfolding Yellow Mellow
Unfolding Yellow Mellow

electronic ambient atmospheric

The Beacon Within
The Beacon Within

Alternative Rock, Indie Rock, Post-Grunge, Dream Pop, Art Rock,

Flying Emotion
Flying Emotion

symphony orchestra, organ, violin, viola, Corelli, adagio, sonata, Dmajor

Break up
Break up

epic, flute, violin, Japanese, lo-fi