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

推荐歌曲

그 모든 순간의 이야기
그 모든 순간의 이야기

**Synthesizer melody**, Electronic beat, A Major, dreamy, bmp 50, **Chillhop**, Warm emotional, 8-bit spaghetti, Acousti

StarFader - Emotional Rollercoaster Ft. Eve
StarFader - Emotional Rollercoaster Ft. Eve

future bass, Trap, R&B, Female And Male vocals, bass drops

GOAT Status: Ronaldo
GOAT Status: Ronaldo

rap, heavy metal, bass, male voice, female voice

Gefroren
Gefroren

Neue Deutsche Härte, Industrial Metal but calmer, slower and more romantic, male singer

Mencarimu Dalam Bayang
Mencarimu Dalam Bayang

melancholic soft rock gothic slow piano

Sad Tango
Sad Tango

Tango, violin, piano, dance pop, sad melody, female vocal

A Fragile Soul
A Fragile Soul

Hard rock, Progressive rock, Art rock, Alternative/Indie, Progressive pop, Pop, Rock

Island Romance
Island Romance

dance electric caribbean

How Many Wives You Got? A Polygamist Story
How Many Wives You Got? A Polygamist Story

1990s Country song titled How Many Wives You Got? A Polygamist Story with female vocals in the style of Reba McEntire

Unbroken Love
Unbroken Love

ballad pop acoustic

Mentiras en Cada Rincón
Mentiras en Cada Rincón

Rap duro, español, hombre, no harmónico

Mr Squikilllly
Mr Squikilllly

electronic quirky pop

forever lost
forever lost

melancholic female slow alternative indie pop ballad soft

560
560

Electro beat motion ambient

I Need Snuggles
I Need Snuggles

danceable electro house

Chasing the Sunset
Chasing the Sunset

flute, drum, drum and bass, guitar

City lights
City lights

Chill house, EDM, ocean, house, witch house, progressive house

Squid Love
Squid Love

pop playful