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

life
life

techno, female voice, bass,transe

Whispers on the Wind
Whispers on the Wind

melodic dreamy electro

soft
soft

piano solo chill lo-fi

บทสวดมนต์แผ่ส่วนบุญส่วนกุศล
บทสวดมนต์แผ่ส่วนบุญส่วนกุศล

metalcore, Gothic metal, Industrial metal, Progressive metalcore, alternative metal

Slap Down
Slap Down

celtic, edm, electronic, electro, electronica, house, glitch, hop, anime-like, powerful, hardcore electronic music, fast

The Serpent's Maw
The Serpent's Maw

slow tempo, male vocals, shamanic, vocal, nordic folk, hypnotic, heavy tribal drums, haunting, dark nordic folk, folk, slow, calyx horn

Designer Store Love
Designer Store Love

male vocals pop cheerful love song

Just idag är jag stark Metal remake
Just idag är jag stark Metal remake

metal, male vocal, slow pase, bass guitar and drums only, guitar solo

dzsudló
dzsudló

rock,fast,sad,male voice, extra drum

Моя Джубили
Моя Джубили

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

Celestial Echoes
Celestial Echoes

layered vocals sacred ethereal

Keine Todos Keine Termine
Keine Todos Keine Termine

elektronisch neue deutsche härte kräftig

I Wanna Go Home
I Wanna Go Home

fast-paced emo punk

Liberdade nas Pedras
Liberdade nas Pedras

ousado energético rock

英雄
英雄

Scottish Folk ,Irish traditional,Brave, moving, sentimental,guzheng,battlefield,红莲の弓矢,japanese singers of the 1990s

Kesepian Malam
Kesepian Malam

pop mellow acoustic

Pyaar Ka Saagar
Pyaar Ka Saagar

romantic hindi pop melodic

O Pegador de Hogwarts
O Pegador de Hogwarts

dançante animado pop