
quicksort.h
Female celtic vocals, Epic cinematic scores, sweeping orchestral movements, adventure music
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
Empfohlen

###10. Echoes of the Underworld
Minimalist Electronic

Shadows Inside
atmospheric dark pop

A Camel's Desert
Arabic, folk

只因你太美 baby 【B站:Nanashi_Zero】【Instagram:Andyx21800000】
Chinese metal fire rap Kpop crazy 蔡徐坤

혼자의 공원
JAZZ , KPOP

Madrid superior
Rock

American Dream Deferred
country, catchy
![chanterelle [final]](/_next/image?url=https%3A%2F%2Fcdn1.suno.ai%2Fimage_83729ae7-76eb-463c-b655-9cc4c09b44d4.png&w=128&q=75)
chanterelle [final]
electro swing, drops, clean, 220bpm

Grandma's Cornbread Recipe
rumba luau, Hawaiian slide guitar

THE RUNES OF SUNO || ᛋᚢᚾᛟ
norse, clear female voice, viking, chant, choir, viking voice, melodic

Chinese zither EDM 2
中国古筝 Chinese zither zither EDM Electronic swing Pure music Festive Rhythm

Gregorian Smash
Gregorian chants melodious trippy
The Distance Delivered
male vocalist,rock,pop rock,folk pop,contemporary folk,folk,melodic,passionate,anthemic

난 다시 일어날거야
hope

Missing You
soulful hindi-english blend romantic

Tears Like Rain
dreamy rock ballad reverb-drenched guitar slow tempo

Наступает ночь
rock blues

