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

推荐歌曲

Mes amis à poils
Mes amis à poils

rhythmic country k-pop lively

Climb Ev'ry Mountain - Viking
Climb Ev'ry Mountain - Viking

32 count, 128 BPM, Metal, Trance, Viking, tribal,, energetic, upbeat, steady beat, Electric Guitar, choir backing vocals

Volcanic Requiem
Volcanic Requiem

instrumental,classical,epic,instrumental,orchestral,atmospheric,epic music,cinematic classical,classical music,western classical music,choral,anthemic,energetic,aggressive,martial,bittersweet,war,hypnotic,triumphant

open your eyes
open your eyes

ambient, synth,chill

รอยเท้า
รอยเท้า

pop soft melodic

Island High
Island High

heavy bass drops, hawaiian, tropical undertones, male vocals, dubstep, glitchy synths

Neon Dreams
Neon Dreams

electronic futuristic synthwave

El Laberinto de Sombras
El Laberinto de Sombras

djent oscuro visual kei

Psalm 39
Psalm 39

Punk Rock

The Bard's Tale
The Bard's Tale

folk cinematic magical enchanting

残光
残光

japanise, female vocals, mournful, ambient

ngã tư không đèn
ngã tư không đèn

fun, piano, female voice, pop

Whispers of the Dunes
Whispers of the Dunes

instrumental,instrumental,film soundtrack,desert,epic,film score,cinematic classical,atmospheric,western classical music,instrumental,psychedelic rock,satirical,Danny Elfman

alo
alo

dance/electronica, dubstep, robotic sounds, hardcore, drum and bass, future bass

Digital Devotion - 4. "Joyful, Joyful, We Adore Thee" (Electro House) - By Sword Lord Gideon V.01
Digital Devotion - 4. "Joyful, Joyful, We Adore Thee" (Electro House) - By Sword Lord Gideon V.01

Genre: Electronic, Techno, Ambient[2] Description: A beautiful and relaxing instrumental track with a blend of techno an

大悲咒
大悲咒

groovy funk, melodic

Bez Práce Nejsou Koláče
Bez Práce Nejsou Koláče

hip hop,english,hiphop/rap/r&b,plattentests.de